@nrwl/angular 14.8.8 → 14.9.0-beta.1

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 (913) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/LICENSE +22 -22
  3. package/README.md +5 -26
  4. package/esm2020/index.mjs +2 -3
  5. package/esm2020/mf/mf.mjs +5 -2
  6. package/esm2020/src/runtime/nx/data-persistence.mjs +2 -59
  7. package/esm2020/testing/index.mjs +1 -18
  8. package/esm2020/testing/src/testing-utils.mjs +5 -1
  9. package/executors.d.ts +2 -0
  10. package/executors.js +2 -0
  11. package/executors.js.map +1 -1
  12. package/executors.json +15 -20
  13. package/fesm2015/nrwl-angular-mf.mjs +4 -1
  14. package/fesm2015/nrwl-angular-mf.mjs.map +1 -1
  15. package/fesm2015/nrwl-angular-testing.mjs +5 -19
  16. package/fesm2015/nrwl-angular-testing.mjs.map +1 -1
  17. package/fesm2015/nrwl-angular.mjs +2 -79
  18. package/fesm2015/nrwl-angular.mjs.map +1 -1
  19. package/fesm2020/nrwl-angular-mf.mjs +4 -1
  20. package/fesm2020/nrwl-angular-mf.mjs.map +1 -1
  21. package/fesm2020/nrwl-angular-testing.mjs +5 -19
  22. package/fesm2020/nrwl-angular-testing.mjs.map +1 -1
  23. package/fesm2020/nrwl-angular.mjs +2 -79
  24. package/fesm2020/nrwl-angular.mjs.map +1 -1
  25. package/generators.d.ts +3 -5
  26. package/generators.js +3 -5
  27. package/generators.js.map +1 -1
  28. package/generators.json +25 -52
  29. package/index.d.ts +1 -2
  30. package/index.js +1 -4
  31. package/index.js.map +1 -1
  32. package/mf/mf.d.ts +1 -1
  33. package/mf/mf.js +6 -2
  34. package/mf/mf.js.map +1 -1
  35. package/migrations.json +505 -1108
  36. package/module-federation/index.d.ts +1 -1
  37. package/module-federation/index.js +3 -3
  38. package/module-federation/index.js.map +1 -1
  39. package/ng-package.json +3 -2
  40. package/package.json +27 -19
  41. package/plugins/component-testing.d.ts +1 -1
  42. package/plugins/component-testing.js +50 -19
  43. package/plugins/component-testing.js.map +1 -1
  44. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.d.ts +2 -4
  45. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +24 -68
  46. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js.map +1 -1
  47. package/src/builders/module-federation-dev-server/schema.d.ts +2 -0
  48. package/src/builders/module-federation-dev-server/schema.json +17 -2
  49. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.d.ts +4 -0
  50. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.js +95 -0
  51. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.js.map +1 -0
  52. package/src/builders/module-federation-dev-ssr/schema.d.ts +17 -0
  53. package/src/builders/module-federation-dev-ssr/schema.json +90 -0
  54. package/src/builders/utilities/buildable-libs.d.ts +9 -0
  55. package/src/builders/utilities/buildable-libs.js +17 -0
  56. package/src/builders/utilities/buildable-libs.js.map +1 -0
  57. package/src/builders/utilities/module-federation.d.ts +6 -0
  58. package/src/builders/utilities/module-federation.js +71 -0
  59. package/src/builders/utilities/module-federation.js.map +1 -0
  60. package/src/builders/utilities/webpack.d.ts +5 -0
  61. package/src/builders/utilities/webpack.js +29 -1
  62. package/src/builders/utilities/webpack.js.map +1 -1
  63. package/src/builders/webpack-browser/schema.d.ts +9 -0
  64. package/src/builders/webpack-browser/schema.json +26 -4
  65. package/src/builders/webpack-browser/validate-options.d.ts +2 -0
  66. package/src/builders/webpack-browser/validate-options.js +41 -0
  67. package/src/builders/webpack-browser/validate-options.js.map +1 -0
  68. package/src/builders/webpack-browser/webpack-browser.impl.d.ts +2 -9
  69. package/src/builders/webpack-browser/webpack-browser.impl.js +58 -56
  70. package/src/builders/webpack-browser/webpack-browser.impl.js.map +1 -1
  71. package/src/builders/webpack-dev-server/lib/index.js.map +1 -0
  72. package/src/builders/webpack-dev-server/lib/normalize-options.js.map +1 -0
  73. package/src/builders/webpack-dev-server/schema.d.ts +21 -0
  74. package/src/builders/webpack-dev-server/schema.json +116 -0
  75. package/src/builders/webpack-dev-server/webpack-dev-server.impl.d.ts +4 -0
  76. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +92 -0
  77. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js.map +1 -0
  78. package/src/builders/webpack-server/schema.d.ts +7 -19
  79. package/src/builders/webpack-server/schema.json +279 -64
  80. package/src/builders/webpack-server/validate-options.d.ts +2 -0
  81. package/src/builders/webpack-server/validate-options.js +34 -0
  82. package/src/builders/webpack-server/validate-options.js.map +1 -0
  83. package/src/builders/webpack-server/webpack-server.impl.d.ts +3 -3
  84. package/src/builders/webpack-server/webpack-server.impl.js +52 -73
  85. package/src/builders/webpack-server/webpack-server.impl.js.map +1 -1
  86. package/src/executors/delegate-build/delegate-build.impl.js +2 -2
  87. package/src/executors/delegate-build/delegate-build.impl.js.map +1 -1
  88. package/src/executors/delegate-build/schema.json +5 -2
  89. package/src/executors/file-server/file-server.impl.js +5 -2
  90. package/src/executors/file-server/file-server.impl.js.map +1 -1
  91. package/src/executors/file-server/schema.d.ts +1 -0
  92. package/src/executors/file-server/schema.json +10 -2
  93. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +15 -19
  94. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js.map +1 -1
  95. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/styles/stylesheet-processor.js +21 -27
  96. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/styles/stylesheet-processor.js.map +1 -1
  97. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +3 -6
  98. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js.map +1 -1
  99. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +5 -3
  100. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js.map +1 -1
  101. package/src/executors/ng-packagr-lite/schema.json +6 -3
  102. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +21 -27
  103. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js.map +1 -1
  104. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +30 -10
  105. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js.map +1 -1
  106. package/src/executors/package/package.impl.d.ts +1 -1
  107. package/src/executors/package/package.impl.js +5 -3
  108. package/src/executors/package/package.impl.js.map +1 -1
  109. package/src/executors/package/schema.json +6 -3
  110. package/src/executors/utilities/angular-version-utils.d.ts +6 -0
  111. package/src/executors/utilities/angular-version-utils.js +20 -0
  112. package/src/executors/utilities/angular-version-utils.js.map +1 -0
  113. package/src/executors/utilities/typescript.d.ts +13 -0
  114. package/src/executors/utilities/typescript.js +49 -0
  115. package/src/executors/utilities/typescript.js.map +1 -0
  116. package/src/generators/add-linting/add-linting.d.ts +1 -1
  117. package/src/generators/add-linting/add-linting.js +29 -10
  118. package/src/generators/add-linting/add-linting.js.map +1 -1
  119. package/src/generators/add-linting/angular-v14/add-linting.d.ts +4 -0
  120. package/src/generators/add-linting/angular-v14/add-linting.js +40 -0
  121. package/src/generators/add-linting/angular-v14/add-linting.js.map +1 -0
  122. package/src/generators/add-linting/angular-v14/lib/add-angular-eslint-dependencies.d.ts +2 -0
  123. package/src/generators/add-linting/angular-v14/lib/add-angular-eslint-dependencies.js +14 -0
  124. package/src/generators/add-linting/angular-v14/lib/add-angular-eslint-dependencies.js.map +1 -0
  125. package/src/generators/add-linting/angular-v14/lib/add-project-lint-target.d.ts +3 -0
  126. package/src/generators/add-linting/angular-v14/lib/add-project-lint-target.js +21 -0
  127. package/src/generators/add-linting/angular-v14/lib/add-project-lint-target.js.map +1 -0
  128. package/src/generators/add-linting/angular-v14/lib/create-eslint-configuration.d.ts +78 -0
  129. package/src/generators/add-linting/angular-v14/lib/create-eslint-configuration.js +111 -0
  130. package/src/generators/add-linting/angular-v14/lib/create-eslint-configuration.js.map +1 -0
  131. package/src/generators/add-linting/angular-v14/schema.d.ts +9 -0
  132. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.d.ts +2 -2
  133. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +1 -1
  134. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js.map +1 -1
  135. package/src/generators/add-linting/lib/add-project-lint-target.js +4 -2
  136. package/src/generators/add-linting/lib/add-project-lint-target.js.map +1 -1
  137. package/src/generators/add-linting/lib/create-eslint-configuration.d.ts +75 -0
  138. package/src/generators/add-linting/lib/create-eslint-configuration.js +44 -4
  139. package/src/generators/add-linting/lib/create-eslint-configuration.js.map +1 -1
  140. package/src/generators/add-linting/schema.json +16 -5
  141. package/src/generators/application/angular-v14/application.d.ts +4 -0
  142. package/src/generators/application/angular-v14/application.js +90 -0
  143. package/src/generators/application/angular-v14/application.js.map +1 -0
  144. package/src/generators/application/angular-v14/files/src/app/app.routes.ts__tpl__ +3 -0
  145. package/src/generators/application/angular-v14/files/src/favicon.ico +0 -0
  146. package/src/generators/application/angular-v14/files/tsconfig.editor.json__tpl__ +5 -0
  147. package/src/generators/application/angular-v14/lib/add-e2e.d.ts +3 -0
  148. package/src/generators/application/angular-v14/lib/add-e2e.js +51 -0
  149. package/src/generators/application/angular-v14/lib/add-e2e.js.map +1 -0
  150. package/src/generators/application/angular-v14/lib/add-linting.d.ts +3 -0
  151. package/src/generators/application/angular-v14/lib/add-linting.js +23 -0
  152. package/src/generators/application/angular-v14/lib/add-linting.js.map +1 -0
  153. package/src/generators/application/angular-v14/lib/add-protractor.d.ts +3 -0
  154. package/src/generators/application/angular-v14/lib/add-protractor.js +18 -0
  155. package/src/generators/application/angular-v14/lib/add-protractor.js.map +1 -0
  156. package/src/generators/application/{lib/add-mf.d.ts → angular-v14/lib/add-proxy-config.d.ts} +1 -1
  157. package/src/generators/application/angular-v14/lib/add-proxy-config.js +23 -0
  158. package/src/generators/application/angular-v14/lib/add-proxy-config.js.map +1 -0
  159. package/src/generators/application/angular-v14/lib/add-unit-test-runner.d.ts +3 -0
  160. package/src/generators/application/angular-v14/lib/add-unit-test-runner.js +22 -0
  161. package/src/generators/application/angular-v14/lib/add-unit-test-runner.js.map +1 -0
  162. package/src/generators/application/angular-v14/lib/convert-to-standalone-app.d.ts +3 -0
  163. package/src/generators/application/angular-v14/lib/convert-to-standalone-app.js +86 -0
  164. package/src/generators/application/angular-v14/lib/convert-to-standalone-app.js.map +1 -0
  165. package/src/generators/application/angular-v14/lib/create-files.d.ts +3 -0
  166. package/src/generators/application/angular-v14/lib/create-files.js +12 -0
  167. package/src/generators/application/angular-v14/lib/create-files.js.map +1 -0
  168. package/src/generators/application/angular-v14/lib/enable-strict-type-checking.d.ts +3 -0
  169. package/src/generators/application/angular-v14/lib/enable-strict-type-checking.js +27 -0
  170. package/src/generators/application/angular-v14/lib/enable-strict-type-checking.js.map +1 -0
  171. package/src/generators/application/angular-v14/lib/index.d.ts +20 -0
  172. package/src/generators/application/angular-v14/lib/index.js +24 -0
  173. package/src/generators/application/angular-v14/lib/index.js.map +1 -0
  174. package/src/generators/application/angular-v14/lib/normalize-options.d.ts +4 -0
  175. package/src/generators/application/angular-v14/lib/normalize-options.js +40 -0
  176. package/src/generators/application/angular-v14/lib/normalize-options.js.map +1 -0
  177. package/src/generators/application/angular-v14/lib/normalized-schema.d.ts +15 -0
  178. package/src/generators/application/angular-v14/lib/normalized-schema.js +3 -0
  179. package/src/generators/application/angular-v14/lib/normalized-schema.js.map +1 -0
  180. package/src/generators/application/angular-v14/lib/nrwl-home-tpl.d.ts +4 -0
  181. package/src/generators/application/angular-v14/lib/nrwl-home-tpl.js +823 -0
  182. package/src/generators/application/angular-v14/lib/nrwl-home-tpl.js.map +1 -0
  183. package/src/generators/application/angular-v14/lib/remove-scaffolded-e2e.d.ts +3 -0
  184. package/src/generators/application/angular-v14/lib/remove-scaffolded-e2e.js +23 -0
  185. package/src/generators/application/angular-v14/lib/remove-scaffolded-e2e.js.map +1 -0
  186. package/src/generators/application/angular-v14/lib/root-router-config.d.ts +3 -0
  187. package/src/generators/application/angular-v14/lib/root-router-config.js +20 -0
  188. package/src/generators/application/angular-v14/lib/root-router-config.js.map +1 -0
  189. package/src/generators/application/angular-v14/lib/set-app-strict-default.d.ts +2 -0
  190. package/src/generators/application/angular-v14/lib/set-app-strict-default.js +16 -0
  191. package/src/generators/application/angular-v14/lib/set-app-strict-default.js.map +1 -0
  192. package/src/generators/application/angular-v14/lib/update-app-component-template.d.ts +3 -0
  193. package/src/generators/application/angular-v14/lib/update-app-component-template.js +26 -0
  194. package/src/generators/application/angular-v14/lib/update-app-component-template.js.map +1 -0
  195. package/src/generators/application/angular-v14/lib/update-component-spec.d.ts +3 -0
  196. package/src/generators/application/angular-v14/lib/update-component-spec.js +33 -0
  197. package/src/generators/application/angular-v14/lib/update-component-spec.js.map +1 -0
  198. package/src/generators/application/{lib/set-default-project.d.ts → angular-v14/lib/update-config-files.d.ts} +1 -1
  199. package/src/generators/application/angular-v14/lib/update-config-files.js +76 -0
  200. package/src/generators/application/angular-v14/lib/update-config-files.js.map +1 -0
  201. package/src/generators/application/angular-v14/lib/update-e2e-project.d.ts +3 -0
  202. package/src/generators/application/angular-v14/lib/update-e2e-project.js +40 -0
  203. package/src/generators/application/angular-v14/lib/update-e2e-project.js.map +1 -0
  204. package/src/generators/application/angular-v14/lib/update-editor-tsconfig.d.ts +3 -0
  205. package/src/generators/application/angular-v14/lib/update-editor-tsconfig.js +27 -0
  206. package/src/generators/application/angular-v14/lib/update-editor-tsconfig.js.map +1 -0
  207. package/src/generators/application/angular-v14/lib/update-nx-component-template.d.ts +3 -0
  208. package/src/generators/application/angular-v14/lib/update-nx-component-template.js +31 -0
  209. package/src/generators/application/angular-v14/lib/update-nx-component-template.js.map +1 -0
  210. package/src/generators/application/angular-v14/schema.d.ts +30 -0
  211. package/src/generators/application/application.d.ts +2 -2
  212. package/src/generators/application/application.js +68 -50
  213. package/src/generators/application/application.js.map +1 -1
  214. package/src/generators/application/files/src/app/app.routes.ts__tpl__ +3 -0
  215. package/src/generators/application/files/tsconfig.editor.json__tpl__ +1 -1
  216. package/src/generators/application/lib/add-e2e.js +2 -8
  217. package/src/generators/application/lib/add-e2e.js.map +1 -1
  218. package/src/generators/application/lib/add-protractor.d.ts +1 -1
  219. package/src/generators/application/lib/add-protractor.js +2 -2
  220. package/src/generators/application/lib/add-protractor.js.map +1 -1
  221. package/src/generators/application/lib/add-unit-test-runner.js +1 -7
  222. package/src/generators/application/lib/add-unit-test-runner.js.map +1 -1
  223. package/src/generators/application/lib/convert-to-standalone-app.js +13 -14
  224. package/src/generators/application/lib/convert-to-standalone-app.js.map +1 -1
  225. package/src/generators/application/lib/create-files.d.ts +1 -1
  226. package/src/generators/application/lib/create-files.js +6 -3
  227. package/src/generators/application/lib/create-files.js.map +1 -1
  228. package/src/generators/application/lib/index.d.ts +0 -2
  229. package/src/generators/application/lib/index.js +0 -2
  230. package/src/generators/application/lib/index.js.map +1 -1
  231. package/src/generators/application/lib/normalize-options.js +17 -24
  232. package/src/generators/application/lib/normalize-options.js.map +1 -1
  233. package/src/generators/application/lib/normalized-schema.d.ts +3 -2
  234. package/src/generators/application/lib/nrwl-home-tpl.js +28 -7
  235. package/src/generators/application/lib/nrwl-home-tpl.js.map +1 -1
  236. package/src/generators/application/lib/root-router-config.js +11 -6
  237. package/src/generators/application/lib/root-router-config.js.map +1 -1
  238. package/src/generators/application/lib/set-app-strict-default.js +7 -7
  239. package/src/generators/application/lib/set-app-strict-default.js.map +1 -1
  240. package/src/generators/application/lib/update-app-component-template.d.ts +1 -1
  241. package/src/generators/application/lib/update-app-component-template.js +21 -14
  242. package/src/generators/application/lib/update-app-component-template.js.map +1 -1
  243. package/src/generators/application/lib/update-component-spec.js +12 -8
  244. package/src/generators/application/lib/update-component-spec.js.map +1 -1
  245. package/src/generators/application/lib/update-config-files.js +8 -10
  246. package/src/generators/application/lib/update-config-files.js.map +1 -1
  247. package/src/generators/application/lib/update-e2e-project.js +2 -3
  248. package/src/generators/application/lib/update-e2e-project.js.map +1 -1
  249. package/src/generators/application/lib/update-nx-component-template.js +12 -8
  250. package/src/generators/application/lib/update-nx-component-template.js.map +1 -1
  251. package/src/generators/application/schema.d.ts +3 -25
  252. package/src/generators/application/schema.json +25 -46
  253. package/src/generators/component/component.js +12 -20
  254. package/src/generators/component/component.js.map +1 -1
  255. package/src/generators/component/lib/entry-point.js +5 -3
  256. package/src/generators/component/lib/entry-point.js.map +1 -1
  257. package/src/generators/component/lib/normalize-options.d.ts +1 -1
  258. package/src/generators/component/lib/normalize-options.js +9 -17
  259. package/src/generators/component/lib/normalize-options.js.map +1 -1
  260. package/src/generators/component/schema.d.ts +1 -2
  261. package/src/generators/component/schema.json +11 -4
  262. package/src/generators/component-cypress-spec/lib/get-args-default-value.js +9 -5
  263. package/src/generators/component-cypress-spec/lib/get-args-default-value.js.map +1 -1
  264. package/src/generators/component-cypress-spec/lib/get-component-selector.js +7 -3
  265. package/src/generators/component-cypress-spec/lib/get-component-selector.js.map +1 -1
  266. package/src/generators/component-cypress-spec/schema.json +18 -7
  267. package/src/generators/component-story/files/__componentFileName__.stories.ts__tmpl__ +9 -15
  268. package/src/generators/component-story/schema.json +10 -5
  269. package/src/generators/component-test/component-test.d.ts +1 -0
  270. package/src/generators/component-test/component-test.js +1 -0
  271. package/src/generators/component-test/component-test.js.map +1 -1
  272. package/src/generators/component-test/files/__componentFileName__.cy.ts__tpl__ +13 -9
  273. package/src/generators/component-test/schema.json +16 -6
  274. package/src/generators/convert-to-with-mf/lib/check-name-matches.js +5 -3
  275. package/src/generators/convert-to-with-mf/lib/check-name-matches.js.map +1 -1
  276. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js +7 -5
  277. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js.map +1 -1
  278. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.d.ts +2 -2
  279. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.js +12 -6
  280. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.js.map +1 -1
  281. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.d.ts +1 -1
  282. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js +4 -2
  283. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js.map +1 -1
  284. package/src/generators/convert-to-with-mf/schema.json +8 -1
  285. package/src/generators/convert-tslint-to-eslint/schema.json +4 -2
  286. package/src/generators/cypress-component-configuration/files/cypress/support/commands.ts__tpl__ +42 -0
  287. package/src/generators/cypress-component-configuration/schema.json +12 -4
  288. package/src/generators/directive/directive.d.ts +4 -0
  289. package/src/generators/directive/directive.js +51 -0
  290. package/src/generators/directive/directive.js.map +1 -0
  291. package/src/generators/directive/files/__directiveFileName__/__directiveFileName__.directive.spec.ts__tpl__ +8 -0
  292. package/src/generators/directive/files/__directiveFileName__/__directiveFileName__.directive.ts__tpl__ +11 -0
  293. package/src/generators/directive/schema.d.ts +14 -0
  294. package/src/generators/directive/schema.json +92 -0
  295. package/src/generators/host/files/src/main.server.ts__tmpl__ +66 -0
  296. package/src/generators/host/files/webpack.server.config.js__tmpl__ +3 -0
  297. package/src/generators/host/host.d.ts +1 -1
  298. package/src/generators/host/host.js +16 -42
  299. package/src/generators/host/host.js.map +1 -1
  300. package/src/generators/host/lib/add-ssr.d.ts +3 -0
  301. package/src/generators/host/lib/add-ssr.js +40 -0
  302. package/src/generators/host/lib/add-ssr.js.map +1 -0
  303. package/src/generators/host/lib/index.d.ts +1 -0
  304. package/src/generators/host/lib/index.js +5 -0
  305. package/src/generators/host/lib/index.js.map +1 -0
  306. package/src/generators/host/schema.d.ts +2 -3
  307. package/src/generators/host/schema.json +21 -8
  308. package/src/generators/init/angular-v14/init.d.ts +4 -0
  309. package/src/generators/init/angular-v14/init.js +156 -0
  310. package/src/generators/init/angular-v14/init.js.map +1 -0
  311. package/src/generators/init/angular-v14/schema.d.ts +14 -0
  312. package/src/generators/init/init.d.ts +1 -1
  313. package/src/generators/init/init.js +111 -89
  314. package/src/generators/init/init.js.map +1 -1
  315. package/src/generators/init/schema.d.ts +2 -2
  316. package/src/generators/init/schema.json +19 -12
  317. package/src/generators/library/lib/add-children.js +16 -17
  318. package/src/generators/library/lib/add-children.js.map +1 -1
  319. package/src/generators/library/lib/add-lazy-loaded-router-configuration.d.ts +1 -1
  320. package/src/generators/library/lib/add-lazy-loaded-router-configuration.js +24 -11
  321. package/src/generators/library/lib/add-lazy-loaded-router-configuration.js.map +1 -1
  322. package/src/generators/library/lib/add-load-children.js +12 -14
  323. package/src/generators/library/lib/add-load-children.js.map +1 -1
  324. package/src/generators/library/lib/add-module.js +2 -2
  325. package/src/generators/library/lib/add-module.js.map +1 -1
  326. package/src/generators/library/lib/add-router-configuration.d.ts +1 -1
  327. package/src/generators/library/lib/add-router-configuration.js +21 -9
  328. package/src/generators/library/lib/add-router-configuration.js.map +1 -1
  329. package/src/generators/library/lib/add-standalone-component.js +6 -6
  330. package/src/generators/library/lib/add-standalone-component.js.map +1 -1
  331. package/src/generators/library/lib/enable-strict-type-checking.js +8 -8
  332. package/src/generators/library/lib/enable-strict-type-checking.js.map +1 -1
  333. package/src/generators/library/lib/normalize-options.d.ts +1 -1
  334. package/src/generators/library/lib/normalize-options.js +15 -23
  335. package/src/generators/library/lib/normalize-options.js.map +1 -1
  336. package/src/generators/library/lib/normalized-schema.d.ts +5 -5
  337. package/src/generators/library/lib/update-ng-package.js +1 -1
  338. package/src/generators/library/lib/update-ng-package.js.map +1 -1
  339. package/src/generators/library/lib/update-project.js +27 -23
  340. package/src/generators/library/lib/update-project.js.map +1 -1
  341. package/src/generators/library/lib/update-tsconfig.d.ts +1 -1
  342. package/src/generators/library/lib/update-tsconfig.js +7 -20
  343. package/src/generators/library/lib/update-tsconfig.js.map +1 -1
  344. package/src/generators/library/library.compat.d.ts +1 -1
  345. package/src/generators/library/library.d.ts +2 -2
  346. package/src/generators/library/library.js +18 -23
  347. package/src/generators/library/library.js.map +1 -1
  348. package/src/generators/library/schema.d.ts +6 -5
  349. package/src/generators/library/schema.json +44 -28
  350. package/src/generators/library-secondary-entry-point/lib/add-path-mapping.js +2 -2
  351. package/src/generators/library-secondary-entry-point/lib/add-path-mapping.js.map +1 -1
  352. package/src/generators/library-secondary-entry-point/schema.json +6 -3
  353. package/src/generators/move/lib/update-module-name.js +2 -2
  354. package/src/generators/move/lib/update-module-name.js.map +1 -1
  355. package/src/generators/move/lib/update-ng-package.js +18 -7
  356. package/src/generators/move/lib/update-ng-package.js.map +1 -1
  357. package/src/generators/move/schema.json +6 -3
  358. package/src/generators/ng-add/files/root/apps/__dot__gitkeep +0 -0
  359. package/src/generators/ng-add/migrate-from-angular-cli.d.ts +2 -2
  360. package/src/generators/ng-add/migrate-from-angular-cli.js +44 -63
  361. package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -1
  362. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.d.ts +9 -0
  363. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +78 -0
  364. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js.map +1 -0
  365. package/src/generators/ng-add/migrators/builders/angular-devkit-ng-packagr.migrator.d.ts +10 -0
  366. package/src/generators/ng-add/migrators/builders/angular-devkit-ng-packagr.migrator.js +97 -0
  367. package/src/generators/ng-add/migrators/builders/angular-devkit-ng-packagr.migrator.js.map +1 -0
  368. package/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.d.ts +12 -0
  369. package/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js +117 -0
  370. package/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js.map +1 -0
  371. package/src/generators/ng-add/migrators/builders/builder-migrator-class.type.d.ts +6 -0
  372. package/src/generators/ng-add/migrators/builders/builder-migrator-class.type.js +3 -0
  373. package/src/generators/ng-add/migrators/builders/builder-migrator-class.type.js.map +1 -0
  374. package/src/generators/ng-add/migrators/builders/builder.migrator.d.ts +13 -0
  375. package/src/generators/ng-add/migrators/builders/builder.migrator.js +45 -0
  376. package/src/generators/ng-add/migrators/builders/builder.migrator.js.map +1 -0
  377. package/src/generators/ng-add/migrators/builders/index.d.ts +5 -0
  378. package/src/generators/ng-add/migrators/builders/index.js +9 -0
  379. package/src/generators/ng-add/migrators/builders/index.js.map +1 -0
  380. package/src/generators/ng-add/migrators/index.d.ts +2 -0
  381. package/src/generators/ng-add/migrators/index.js +6 -0
  382. package/src/generators/ng-add/migrators/index.js.map +1 -0
  383. package/src/generators/ng-add/migrators/migrator.d.ts +23 -0
  384. package/src/generators/ng-add/migrators/migrator.js +124 -0
  385. package/src/generators/ng-add/migrators/migrator.js.map +1 -0
  386. package/src/generators/ng-add/{utilities → migrators/projects}/app.migrator.d.ts +6 -12
  387. package/src/generators/ng-add/{utilities → migrators/projects}/app.migrator.js +81 -206
  388. package/src/generators/ng-add/migrators/projects/app.migrator.js.map +1 -0
  389. package/src/generators/ng-add/{utilities → migrators/projects}/e2e.migrator.d.ts +4 -5
  390. package/src/generators/ng-add/{utilities → migrators/projects}/e2e.migrator.js +54 -41
  391. package/src/generators/ng-add/migrators/projects/e2e.migrator.js.map +1 -0
  392. package/src/generators/ng-add/migrators/projects/index.d.ts +4 -0
  393. package/src/generators/ng-add/migrators/projects/index.js +8 -0
  394. package/src/generators/ng-add/migrators/projects/index.js.map +1 -0
  395. package/src/generators/ng-add/migrators/projects/lib.migrator.d.ts +11 -0
  396. package/src/generators/ng-add/migrators/projects/lib.migrator.js +62 -0
  397. package/src/generators/ng-add/migrators/projects/lib.migrator.js.map +1 -0
  398. package/src/generators/ng-add/migrators/projects/project.migrator.d.ts +25 -0
  399. package/src/generators/ng-add/migrators/projects/project.migrator.js +185 -0
  400. package/src/generators/ng-add/migrators/projects/project.migrator.js.map +1 -0
  401. package/src/generators/ng-add/schema.d.ts +1 -2
  402. package/src/generators/ng-add/schema.json +14 -12
  403. package/src/generators/ng-add/utilities/dependencies.d.ts +2 -0
  404. package/src/generators/ng-add/utilities/dependencies.js +30 -0
  405. package/src/generators/ng-add/utilities/dependencies.js.map +1 -0
  406. package/src/generators/ng-add/utilities/format-files-task.d.ts +2 -0
  407. package/src/generators/ng-add/utilities/format-files-task.js +17 -0
  408. package/src/generators/ng-add/utilities/format-files-task.js.map +1 -0
  409. package/src/generators/ng-add/utilities/index.d.ts +8 -0
  410. package/src/generators/ng-add/utilities/index.js +12 -0
  411. package/src/generators/ng-add/utilities/index.js.map +1 -0
  412. package/src/generators/ng-add/utilities/normalize-options.d.ts +3 -3
  413. package/src/generators/ng-add/utilities/normalize-options.js.map +1 -1
  414. package/src/generators/ng-add/utilities/projects.d.ts +4 -0
  415. package/src/generators/ng-add/utilities/projects.js +36 -0
  416. package/src/generators/ng-add/utilities/projects.js.map +1 -0
  417. package/src/generators/ng-add/utilities/types.d.ts +14 -9
  418. package/src/generators/ng-add/utilities/validation-logging.d.ts +2 -1
  419. package/src/generators/ng-add/utilities/validation-logging.js +21 -2
  420. package/src/generators/ng-add/utilities/validation-logging.js.map +1 -1
  421. package/src/generators/ng-add/utilities/workspace.d.ts +9 -6
  422. package/src/generators/ng-add/utilities/workspace.js +107 -84
  423. package/src/generators/ng-add/utilities/workspace.js.map +1 -1
  424. package/src/generators/ngrx/files/{__directory__ → latest/__directory__}/__fileName__.effects.spec.ts__tmpl__ +2 -6
  425. package/src/generators/ngrx/files/latest/__directory__/__fileName__.effects.ts__tmpl__ +22 -0
  426. package/src/generators/ngrx/files/{__directory__ → latest/__directory__}/__fileName__.facade.spec.ts__tmpl__ +0 -2
  427. package/src/generators/ngrx/files/latest/__directory__/__fileName__.facade.ts__tmpl__ +27 -0
  428. package/src/generators/ngrx/files/{__directory__ → latest/__directory__}/__fileName__.selectors.spec.ts__tmpl__ +8 -8
  429. package/src/generators/ngrx/files/{__directory__ → latest/__directory__}/__fileName__.selectors.ts__tmpl__ +14 -14
  430. package/src/generators/ngrx/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +22 -0
  431. package/src/generators/ngrx/files/{__directory__ → no-inject/__directory__}/__fileName__.facade.ts__tmpl__ +5 -5
  432. package/src/generators/ngrx/lib/add-exports-barrel.d.ts +2 -2
  433. package/src/generators/ngrx/lib/add-exports-barrel.js +14 -11
  434. package/src/generators/ngrx/lib/add-exports-barrel.js.map +1 -1
  435. package/src/generators/ngrx/lib/add-imports-to-module.d.ts +2 -2
  436. package/src/generators/ngrx/lib/add-imports-to-module.js +112 -36
  437. package/src/generators/ngrx/lib/add-imports-to-module.js.map +1 -1
  438. package/src/generators/ngrx/lib/add-ngrx-to-package-json.js +16 -12
  439. package/src/generators/ngrx/lib/add-ngrx-to-package-json.js.map +1 -1
  440. package/src/generators/ngrx/lib/generate-files.d.ts +2 -2
  441. package/src/generators/ngrx/lib/generate-files.js +9 -5
  442. package/src/generators/ngrx/lib/generate-files.js.map +1 -1
  443. package/src/generators/ngrx/lib/index.d.ts +1 -0
  444. package/src/generators/ngrx/lib/index.js +3 -1
  445. package/src/generators/ngrx/lib/index.js.map +1 -1
  446. package/src/generators/ngrx/lib/normalize-options.d.ts +4 -1
  447. package/src/generators/ngrx/lib/normalize-options.js +7 -1
  448. package/src/generators/ngrx/lib/normalize-options.js.map +1 -1
  449. package/src/generators/ngrx/lib/validate-options.d.ts +3 -0
  450. package/src/generators/ngrx/lib/validate-options.js +39 -0
  451. package/src/generators/ngrx/lib/validate-options.js.map +1 -0
  452. package/src/generators/ngrx/ngrx.d.ts +1 -1
  453. package/src/generators/ngrx/ngrx.js +10 -12
  454. package/src/generators/ngrx/ngrx.js.map +1 -1
  455. package/src/generators/ngrx/schema.d.ts +3 -6
  456. package/src/generators/ngrx/schema.json +31 -12
  457. package/src/generators/pipe/files/__pipeFileName__/__pipeFileName__.pipe.spec.ts__tpl__ +8 -0
  458. package/src/generators/pipe/files/__pipeFileName__/__pipeFileName__.pipe.ts__tpl__ +13 -0
  459. package/src/generators/pipe/pipe.d.ts +4 -0
  460. package/src/generators/pipe/pipe.js +45 -0
  461. package/src/generators/pipe/pipe.js.map +1 -0
  462. package/src/generators/pipe/schema.d.ts +12 -0
  463. package/src/generators/pipe/schema.json +73 -0
  464. package/src/generators/remote/files/src/main.server.ts__tmpl__ +74 -0
  465. package/src/generators/remote/files/webpack.server.config.js__tmpl__ +3 -0
  466. package/src/generators/remote/lib/add-ssr.d.ts +5 -0
  467. package/src/generators/remote/lib/add-ssr.js +45 -0
  468. package/src/generators/remote/lib/add-ssr.js.map +1 -0
  469. package/src/generators/remote/lib/find-next-available-port.d.ts +2 -0
  470. package/src/generators/remote/lib/find-next-available-port.js +19 -0
  471. package/src/generators/remote/lib/find-next-available-port.js.map +1 -0
  472. package/src/generators/remote/lib/index.d.ts +2 -0
  473. package/src/generators/remote/lib/index.js +6 -0
  474. package/src/generators/remote/lib/index.js.map +1 -0
  475. package/src/generators/remote/remote.d.ts +1 -1
  476. package/src/generators/remote/remote.js +17 -71
  477. package/src/generators/remote/remote.js.map +1 -1
  478. package/src/generators/remote/schema.d.ts +2 -3
  479. package/src/generators/remote/schema.json +18 -7
  480. package/src/generators/scam/lib/convert-component-to-scam.js +9 -5
  481. package/src/generators/scam/lib/convert-component-to-scam.js.map +1 -1
  482. package/src/generators/scam/lib/normalize-options.js +4 -6
  483. package/src/generators/scam/lib/normalize-options.js.map +1 -1
  484. package/src/generators/scam/scam.js +3 -5
  485. package/src/generators/scam/scam.js.map +1 -1
  486. package/src/generators/scam/schema.d.ts +1 -2
  487. package/src/generators/scam/schema.json +15 -3
  488. package/src/generators/scam-directive/lib/convert-directive-to-scam.js +9 -5
  489. package/src/generators/scam-directive/lib/convert-directive-to-scam.js.map +1 -1
  490. package/src/generators/scam-directive/lib/normalize-options.js +4 -6
  491. package/src/generators/scam-directive/lib/normalize-options.js.map +1 -1
  492. package/src/generators/scam-directive/scam-directive.js +3 -5
  493. package/src/generators/scam-directive/scam-directive.js.map +1 -1
  494. package/src/generators/scam-directive/schema.d.ts +1 -2
  495. package/src/generators/scam-directive/schema.json +17 -4
  496. package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +9 -5
  497. package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js.map +1 -1
  498. package/src/generators/scam-pipe/lib/normalize-options.js +4 -6
  499. package/src/generators/scam-pipe/lib/normalize-options.js.map +1 -1
  500. package/src/generators/scam-pipe/scam-pipe.js +3 -5
  501. package/src/generators/scam-pipe/scam-pipe.js.map +1 -1
  502. package/src/generators/scam-pipe/schema.d.ts +1 -2
  503. package/src/generators/scam-pipe/schema.json +17 -4
  504. package/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.d.ts +1 -1
  505. package/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.js +2 -2
  506. package/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.js.map +1 -1
  507. package/src/generators/scam-to-standalone/lib/get-component-data-from-ast.d.ts +3 -3
  508. package/src/generators/scam-to-standalone/lib/get-component-data-from-ast.js +4 -4
  509. package/src/generators/scam-to-standalone/lib/get-component-data-from-ast.js.map +1 -1
  510. package/src/generators/scam-to-standalone/lib/get-module-metadata-from-ast.d.ts +3 -3
  511. package/src/generators/scam-to-standalone/lib/get-module-metadata-from-ast.js +8 -8
  512. package/src/generators/scam-to-standalone/lib/get-module-metadata-from-ast.js.map +1 -1
  513. package/src/generators/scam-to-standalone/lib/selector-exists-in-ast.d.ts +1 -1
  514. package/src/generators/scam-to-standalone/lib/selector-exists-in-ast.js +2 -2
  515. package/src/generators/scam-to-standalone/lib/selector-exists-in-ast.js.map +1 -1
  516. package/src/generators/scam-to-standalone/lib/verify-is-inline-scam.d.ts +1 -1
  517. package/src/generators/scam-to-standalone/scam-to-standalone.js +7 -0
  518. package/src/generators/scam-to-standalone/scam-to-standalone.js.map +1 -1
  519. package/src/generators/scam-to-standalone/schema.json +9 -5
  520. package/src/generators/setup-mf/files/entry-module-files/entry.module.ts__tmpl__ +3 -7
  521. package/src/generators/setup-mf/files/{standalone-entry-component-files/routes.ts__tmpl__ → entry-module-files/entry.routes.ts__tmpl__} +1 -1
  522. package/src/generators/setup-mf/files/standalone-entry-component-files/entry.routes.ts__tmpl__ +4 -0
  523. package/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +1 -1
  524. package/src/generators/setup-mf/files/webpack/webpack.prod.config.js__tmpl__ +1 -1
  525. package/src/generators/setup-mf/lib/add-remote-entry.js +20 -13
  526. package/src/generators/setup-mf/lib/add-remote-entry.js.map +1 -1
  527. package/src/generators/setup-mf/lib/add-remote-to-host.js +19 -29
  528. package/src/generators/setup-mf/lib/add-remote-to-host.js.map +1 -1
  529. package/src/generators/setup-mf/lib/fix-bootstrap.js +12 -8
  530. package/src/generators/setup-mf/lib/fix-bootstrap.js.map +1 -1
  531. package/src/generators/setup-mf/lib/generate-config.d.ts +1 -1
  532. package/src/generators/setup-mf/lib/generate-config.js +5 -5
  533. package/src/generators/setup-mf/lib/index.d.ts +2 -0
  534. package/src/generators/setup-mf/lib/index.js +2 -0
  535. package/src/generators/setup-mf/lib/index.js.map +1 -1
  536. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +3 -0
  537. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +61 -0
  538. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js.map +1 -0
  539. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +1 -1
  540. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js.map +1 -1
  541. package/src/generators/setup-mf/lib/setup-serve-target.js +1 -1
  542. package/src/generators/setup-mf/lib/setup-serve-target.js.map +1 -1
  543. package/src/generators/setup-mf/lib/update-host-app-routes.d.ts +3 -0
  544. package/src/generators/setup-mf/lib/update-host-app-routes.js +38 -0
  545. package/src/generators/setup-mf/lib/update-host-app-routes.js.map +1 -0
  546. package/src/generators/setup-mf/schema.json +9 -5
  547. package/src/generators/setup-mf/setup-mf.js +15 -3
  548. package/src/generators/setup-mf/setup-mf.js.map +1 -1
  549. package/src/generators/setup-ssr/files/__serverFileName__ +60 -0
  550. package/src/generators/setup-ssr/files/src/__main__ +11 -0
  551. package/src/generators/setup-ssr/files/src/app/__rootModuleFileName__ +14 -0
  552. package/src/generators/setup-ssr/files/src/main.ts__tpl__ +16 -0
  553. package/src/generators/setup-ssr/files/tsconfig.server.json__tpl__ +15 -0
  554. package/src/generators/setup-ssr/lib/generate-files.d.ts +3 -0
  555. package/src/generators/setup-ssr/lib/generate-files.js +11 -0
  556. package/src/generators/setup-ssr/lib/generate-files.js.map +1 -0
  557. package/src/generators/setup-ssr/lib/index.d.ts +4 -0
  558. package/src/generators/setup-ssr/lib/index.js +8 -0
  559. package/src/generators/setup-ssr/lib/index.js.map +1 -0
  560. package/src/generators/setup-ssr/lib/normalize-options.d.ts +12 -0
  561. package/src/generators/setup-ssr/lib/normalize-options.js +19 -0
  562. package/src/generators/setup-ssr/lib/normalize-options.js.map +1 -0
  563. package/src/generators/setup-ssr/lib/update-app-module.d.ts +3 -0
  564. package/src/generators/setup-ssr/lib/update-app-module.js +23 -0
  565. package/src/generators/setup-ssr/lib/update-app-module.js.map +1 -0
  566. package/src/generators/setup-ssr/lib/update-project-config.d.ts +3 -0
  567. package/src/generators/setup-ssr/lib/update-project-config.js +73 -0
  568. package/src/generators/setup-ssr/lib/update-project-config.js.map +1 -0
  569. package/src/generators/setup-ssr/schema.d.ts +10 -0
  570. package/src/generators/setup-ssr/schema.json +60 -0
  571. package/src/generators/setup-ssr/setup-ssr.compat.js +6 -0
  572. package/src/generators/setup-ssr/setup-ssr.compat.js.map +1 -0
  573. package/src/generators/setup-ssr/setup-ssr.d.ts +4 -0
  574. package/src/generators/setup-ssr/setup-ssr.js +33 -0
  575. package/src/generators/setup-ssr/setup-ssr.js.map +1 -0
  576. package/src/generators/setup-tailwind/lib/detect-tailwind-installed-version.js +5 -5
  577. package/src/generators/setup-tailwind/lib/detect-tailwind-installed-version.js.map +1 -1
  578. package/src/generators/setup-tailwind/schema.json +6 -3
  579. package/src/generators/stories/schema.json +6 -3
  580. package/src/generators/stories/stories.js +0 -1
  581. package/src/generators/stories/stories.js.map +1 -1
  582. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.d.ts +1 -1
  583. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +6 -2
  584. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js.map +1 -1
  585. package/src/generators/storybook-configuration/schema.d.ts +2 -1
  586. package/src/generators/storybook-configuration/schema.json +20 -8
  587. package/src/generators/utils/create-ts-config.d.ts +8 -0
  588. package/src/generators/utils/create-ts-config.js +36 -0
  589. package/src/generators/utils/create-ts-config.js.map +1 -0
  590. package/src/generators/utils/export-scam.d.ts +1 -1
  591. package/src/generators/utils/file-info.d.ts +3 -3
  592. package/src/generators/utils/file-info.js +3 -4
  593. package/src/generators/utils/file-info.js.map +1 -1
  594. package/src/generators/utils/find-module.d.ts +4 -0
  595. package/src/generators/utils/find-module.js +59 -0
  596. package/src/generators/utils/find-module.js.map +1 -0
  597. package/src/generators/utils/get-new-project-name.d.ts +6 -0
  598. package/src/generators/utils/get-new-project-name.js +13 -0
  599. package/src/generators/utils/get-new-project-name.js.map +1 -0
  600. package/src/generators/utils/index.d.ts +1 -0
  601. package/src/generators/utils/index.js +1 -0
  602. package/src/generators/utils/index.js.map +1 -1
  603. package/src/generators/utils/insert-ngmodule-import.d.ts +1 -2
  604. package/src/generators/utils/insert-ngmodule-import.js +42 -21
  605. package/src/generators/utils/insert-ngmodule-import.js.map +1 -1
  606. package/src/generators/utils/path.d.ts +2 -0
  607. package/src/generators/utils/path.js +19 -4
  608. package/src/generators/utils/path.js.map +1 -1
  609. package/src/generators/utils/storybook-ast/component-info.js +26 -11
  610. package/src/generators/utils/storybook-ast/component-info.js.map +1 -1
  611. package/src/generators/utils/storybook-ast/entry-point.d.ts +1 -1
  612. package/src/generators/utils/storybook-ast/module-info.js +49 -24
  613. package/src/generators/utils/storybook-ast/module-info.js.map +1 -1
  614. package/src/generators/utils/storybook-ast/storybook-inputs.d.ts +1 -1
  615. package/src/generators/utils/storybook-ast/storybook-inputs.js +20 -9
  616. package/src/generators/utils/storybook-ast/storybook-inputs.js.map +1 -1
  617. package/src/generators/utils/testing.d.ts +8 -0
  618. package/src/generators/utils/testing.js +44 -7
  619. package/src/generators/utils/testing.js.map +1 -1
  620. package/src/generators/utils/types.d.ts +1 -1
  621. package/src/generators/utils/version-utils.d.ts +14 -0
  622. package/src/generators/utils/version-utils.js +64 -0
  623. package/src/generators/utils/version-utils.js.map +1 -0
  624. package/src/generators/web-worker/lib/update-tsconfig.js +2 -2
  625. package/src/generators/web-worker/lib/update-tsconfig.js.map +1 -1
  626. package/src/generators/web-worker/schema.json +12 -4
  627. package/src/generators/web-worker/web-worker.js +2 -2
  628. package/src/generators/web-worker/web-worker.js.map +1 -1
  629. package/src/migrations/update-14-2-0/remove-show-circular-dependencies-option.js +1 -1
  630. package/src/migrations/update-14-2-0/remove-show-circular-dependencies-option.js.map +1 -1
  631. package/src/migrations/update-14-2-0/update-router-initial-navigation.js +5 -1
  632. package/src/migrations/update-14-2-0/update-router-initial-navigation.js.map +1 -1
  633. package/src/migrations/update-14-2-0/update-tsconfig-target.js +1 -1
  634. package/src/migrations/update-14-2-0/update-tsconfig-target.js.map +1 -1
  635. package/src/migrations/update-14-8-0/rename-webpack-server.d.ts +2 -0
  636. package/src/migrations/update-14-8-0/rename-webpack-server.js +22 -0
  637. package/src/migrations/update-14-8-0/rename-webpack-server.js.map +1 -0
  638. package/src/migrations/update-15-0-0/add-karma-inputs.js +47 -0
  639. package/src/migrations/update-15-0-0/add-karma-inputs.js.map +1 -0
  640. package/src/migrations/update-15-0-0/switch-to-jasmine-marbles.d.ts +2 -0
  641. package/src/migrations/update-15-0-0/switch-to-jasmine-marbles.js +94 -0
  642. package/src/migrations/update-15-0-0/switch-to-jasmine-marbles.js.map +1 -0
  643. package/src/migrations/update-15-2-0/remove-browserlist-config.d.ts +3 -0
  644. package/src/migrations/update-15-2-0/remove-browserlist-config.js +62 -0
  645. package/src/migrations/update-15-2-0/remove-browserlist-config.js.map +1 -0
  646. package/src/migrations/update-15-2-0/remove-platform-server-exports.js +65 -0
  647. package/src/migrations/update-15-2-0/remove-platform-server-exports.js.map +1 -0
  648. package/src/migrations/{update-12-0-0/update-ngcc-postinstall.js → update-15-2-0/update-angular-cli.js} +8 -3
  649. package/src/migrations/update-15-2-0/update-angular-cli.js.map +1 -0
  650. package/src/migrations/update-15-2-0/update-karma-main-file.js +73 -0
  651. package/src/migrations/update-15-2-0/update-karma-main-file.js.map +1 -0
  652. package/src/migrations/update-15-2-0/update-typescript-target.d.ts +2 -0
  653. package/src/migrations/update-15-2-0/update-typescript-target.js +52 -0
  654. package/src/migrations/update-15-2-0/update-typescript-target.js.map +1 -0
  655. package/src/migrations/update-15-2-0/update-workspace-config.d.ts +2 -0
  656. package/src/migrations/update-15-2-0/update-workspace-config.js +28 -0
  657. package/src/migrations/update-15-2-0/update-workspace-config.js.map +1 -0
  658. package/src/migrations/update-15-5-0/update-angular-cli.js +27 -0
  659. package/src/migrations/update-15-5-0/update-angular-cli.js.map +1 -0
  660. package/src/migrations/update-15-7-0/install-required-packages.js +39 -0
  661. package/src/migrations/update-15-7-0/install-required-packages.js.map +1 -0
  662. package/src/migrations/update-15-8-0/update-angular-cli.js +27 -0
  663. package/src/migrations/update-15-8-0/update-angular-cli.js.map +1 -0
  664. package/src/runtime/nx/data-persistence.d.ts +8 -50
  665. package/src/runtime/nx/data-persistence.js +1 -57
  666. package/src/runtime/nx/data-persistence.js.map +1 -1
  667. package/src/utils/backward-compatible-versions.d.ts +6 -0
  668. package/src/utils/backward-compatible-versions.js +36 -0
  669. package/src/utils/backward-compatible-versions.js.map +1 -0
  670. package/src/utils/cli-config-utils.d.ts +1 -0
  671. package/src/utils/cli-config-utils.js +46 -0
  672. package/src/utils/cli-config-utils.js.map +1 -0
  673. package/src/{generators/ng-add/utilities → utils}/file-change-recorder.d.ts +1 -1
  674. package/src/{generators/ng-add/utilities → utils}/file-change-recorder.js +7 -7
  675. package/src/utils/file-change-recorder.js.map +1 -0
  676. package/src/utils/get-mf-projects.js +4 -4
  677. package/src/utils/get-mf-projects.js.map +1 -1
  678. package/src/utils/mf/utils.d.ts +12 -17
  679. package/src/utils/mf/utils.js +50 -47
  680. package/src/utils/mf/utils.js.map +1 -1
  681. package/src/utils/mf/with-module-federation-ssr.d.ts +2 -0
  682. package/src/utils/mf/with-module-federation-ssr.js +45 -0
  683. package/src/utils/mf/with-module-federation-ssr.js.map +1 -0
  684. package/src/utils/mf/with-module-federation.d.ts +2 -16
  685. package/src/utils/mf/with-module-federation.js +2 -114
  686. package/src/utils/mf/with-module-federation.js.map +1 -1
  687. package/src/utils/nx-devkit/ast-utils.d.ts +10 -2
  688. package/src/utils/nx-devkit/ast-utils.js +135 -58
  689. package/src/utils/nx-devkit/ast-utils.js.map +1 -1
  690. package/src/utils/nx-devkit/route-utils.d.ts +3 -0
  691. package/src/utils/nx-devkit/route-utils.js +87 -0
  692. package/src/utils/nx-devkit/route-utils.js.map +1 -0
  693. package/src/utils/nx-devkit/testing.js +12 -24
  694. package/src/utils/nx-devkit/testing.js.map +1 -1
  695. package/src/utils/test-runners.d.ts +0 -1
  696. package/src/utils/test-runners.js +0 -1
  697. package/src/utils/test-runners.js.map +1 -1
  698. package/src/utils/version-utils.d.ts +3 -0
  699. package/src/utils/version-utils.js +22 -0
  700. package/src/utils/version-utils.js.map +1 -0
  701. package/src/utils/versions.d.ts +13 -13
  702. package/src/utils/versions.js +14 -14
  703. package/src/utils/versions.js.map +1 -1
  704. package/tailwind.js +1 -1
  705. package/tailwind.js.map +1 -1
  706. package/testing/index.d.ts +0 -17
  707. package/testing/index.js +1 -18
  708. package/testing/index.js.map +1 -1
  709. package/testing/src/testing-utils.d.ts +4 -0
  710. package/testing/src/testing-utils.js +4 -0
  711. package/testing/src/testing-utils.js.map +1 -1
  712. package/esm2020/src/runtime/nx/nx.module.mjs +0 -23
  713. package/scripts/nx-cli-warning.js +0 -40
  714. package/src/builders/webpack-server/lib/index.js.map +0 -1
  715. package/src/builders/webpack-server/lib/normalize-options.js.map +0 -1
  716. package/src/generators/application/files/tsconfig.json +0 -10
  717. package/src/generators/application/lib/add-mf.js +0 -24
  718. package/src/generators/application/lib/add-mf.js.map +0 -1
  719. package/src/generators/application/lib/set-default-project.js +0 -13
  720. package/src/generators/application/lib/set-default-project.js.map +0 -1
  721. package/src/generators/change-storybook-targets/change-storybook-targets.d.ts +0 -4
  722. package/src/generators/change-storybook-targets/change-storybook-targets.js +0 -17
  723. package/src/generators/change-storybook-targets/change-storybook-targets.js.map +0 -1
  724. package/src/generators/change-storybook-targets/compat.js +0 -6
  725. package/src/generators/change-storybook-targets/compat.js.map +0 -1
  726. package/src/generators/change-storybook-targets/schema.d.ts +0 -3
  727. package/src/generators/change-storybook-targets/schema.json +0 -17
  728. package/src/generators/downgrade-module/compat.d.ts +0 -2
  729. package/src/generators/downgrade-module/compat.js +0 -6
  730. package/src/generators/downgrade-module/compat.js.map +0 -1
  731. package/src/generators/downgrade-module/downgrade-module.d.ts +0 -4
  732. package/src/generators/downgrade-module/downgrade-module.js +0 -26
  733. package/src/generators/downgrade-module/downgrade-module.js.map +0 -1
  734. package/src/generators/downgrade-module/files/main.ts__tmpl__ +0 -26
  735. package/src/generators/downgrade-module/lib/add-entry-components-to-module.d.ts +0 -3
  736. package/src/generators/downgrade-module/lib/add-entry-components-to-module.js +0 -10
  737. package/src/generators/downgrade-module/lib/add-entry-components-to-module.js.map +0 -1
  738. package/src/generators/downgrade-module/lib/index.d.ts +0 -4
  739. package/src/generators/downgrade-module/lib/index.js +0 -8
  740. package/src/generators/downgrade-module/lib/index.js.map +0 -1
  741. package/src/generators/downgrade-module/lib/normalize-options.d.ts +0 -2
  742. package/src/generators/downgrade-module/lib/normalize-options.js +0 -9
  743. package/src/generators/downgrade-module/lib/normalize-options.js.map +0 -1
  744. package/src/generators/downgrade-module/lib/update-main.d.ts +0 -3
  745. package/src/generators/downgrade-module/lib/update-main.js +0 -20
  746. package/src/generators/downgrade-module/lib/update-main.js.map +0 -1
  747. package/src/generators/downgrade-module/lib/update-module-bootstrap.d.ts +0 -3
  748. package/src/generators/downgrade-module/lib/update-module-bootstrap.js +0 -15
  749. package/src/generators/downgrade-module/lib/update-module-bootstrap.js.map +0 -1
  750. package/src/generators/downgrade-module/schema.d.ts +0 -7
  751. package/src/generators/downgrade-module/schema.json +0 -38
  752. package/src/generators/karma/compat.d.ts +0 -2
  753. package/src/generators/karma/compat.js +0 -6
  754. package/src/generators/karma/compat.js.map +0 -1
  755. package/src/generators/karma/files/karma.conf.js__tmpl__ +0 -44
  756. package/src/generators/karma/karma.d.ts +0 -4
  757. package/src/generators/karma/karma.js +0 -57
  758. package/src/generators/karma/karma.js.map +0 -1
  759. package/src/generators/karma/schema.d.ts +0 -3
  760. package/src/generators/karma/schema.json +0 -17
  761. package/src/generators/karma-project/compat.d.ts +0 -2
  762. package/src/generators/karma-project/compat.js +0 -6
  763. package/src/generators/karma-project/compat.js.map +0 -1
  764. package/src/generators/karma-project/files/karma.conf.js__tmpl__ +0 -16
  765. package/src/generators/karma-project/files/src/test.ts__tmpl__ +0 -22
  766. package/src/generators/karma-project/files/tsconfig.spec.json +0 -9
  767. package/src/generators/karma-project/karma-project.d.ts +0 -4
  768. package/src/generators/karma-project/karma-project.js +0 -25
  769. package/src/generators/karma-project/karma-project.js.map +0 -1
  770. package/src/generators/karma-project/lib/check-test-target.d.ts +0 -2
  771. package/src/generators/karma-project/lib/check-test-target.js +0 -12
  772. package/src/generators/karma-project/lib/check-test-target.js.map +0 -1
  773. package/src/generators/karma-project/lib/generate-karma-project-files.d.ts +0 -2
  774. package/src/generators/karma-project/lib/generate-karma-project-files.js +0 -15
  775. package/src/generators/karma-project/lib/generate-karma-project-files.js.map +0 -1
  776. package/src/generators/karma-project/lib/update-tsconfig.d.ts +0 -2
  777. package/src/generators/karma-project/lib/update-tsconfig.js +0 -21
  778. package/src/generators/karma-project/lib/update-tsconfig.js.map +0 -1
  779. package/src/generators/karma-project/lib/update-workspace-config.d.ts +0 -2
  780. package/src/generators/karma-project/lib/update-workspace-config.js +0 -29
  781. package/src/generators/karma-project/lib/update-workspace-config.js.map +0 -1
  782. package/src/generators/karma-project/schema.d.ts +0 -5
  783. package/src/generators/karma-project/schema.json +0 -27
  784. package/src/generators/library/files/lib/tsconfig.json__tpl__ +0 -14
  785. package/src/generators/ng-add/files/prettier/__dot__prettierignore +0 -4
  786. package/src/generators/ng-add/utilities/app.migrator.js.map +0 -1
  787. package/src/generators/ng-add/utilities/e2e.migrator.js.map +0 -1
  788. package/src/generators/ng-add/utilities/file-change-recorder.js.map +0 -1
  789. package/src/generators/ng-add/utilities/get-all-projects.d.ts +0 -3
  790. package/src/generators/ng-add/utilities/get-all-projects.js +0 -26
  791. package/src/generators/ng-add/utilities/get-all-projects.js.map +0 -1
  792. package/src/generators/ng-add/utilities/lib.migrator.d.ts +0 -24
  793. package/src/generators/ng-add/utilities/lib.migrator.js +0 -268
  794. package/src/generators/ng-add/utilities/lib.migrator.js.map +0 -1
  795. package/src/generators/ng-add/utilities/project.migrator.d.ts +0 -36
  796. package/src/generators/ng-add/utilities/project.migrator.js +0 -242
  797. package/src/generators/ng-add/utilities/project.migrator.js.map +0 -1
  798. package/src/generators/ng-add/utilities/validate-projects.d.ts +0 -2
  799. package/src/generators/ng-add/utilities/validate-projects.js +0 -46
  800. package/src/generators/ng-add/utilities/validate-projects.js.map +0 -1
  801. package/src/generators/ngrx/files/__directory__/__fileName__.effects.ts__tmpl__ +0 -37
  802. package/src/generators/upgrade-module/compat.d.ts +0 -2
  803. package/src/generators/upgrade-module/compat.js +0 -6
  804. package/src/generators/upgrade-module/compat.js.map +0 -1
  805. package/src/generators/upgrade-module/files/__name__-setup.ts__tmpl__ +0 -39
  806. package/src/generators/upgrade-module/files/hybrid.spec.ts__tmpl__ +0 -32
  807. package/src/generators/upgrade-module/lib/add-imports-to-module.d.ts +0 -3
  808. package/src/generators/upgrade-module/lib/add-imports-to-module.js +0 -17
  809. package/src/generators/upgrade-module/lib/add-imports-to-module.js.map +0 -1
  810. package/src/generators/upgrade-module/lib/create-files.d.ts +0 -3
  811. package/src/generators/upgrade-module/lib/create-files.js +0 -13
  812. package/src/generators/upgrade-module/lib/create-files.js.map +0 -1
  813. package/src/generators/upgrade-module/lib/index.d.ts +0 -4
  814. package/src/generators/upgrade-module/lib/index.js +0 -8
  815. package/src/generators/upgrade-module/lib/index.js.map +0 -1
  816. package/src/generators/upgrade-module/lib/normalize-options.d.ts +0 -2
  817. package/src/generators/upgrade-module/lib/normalize-options.js +0 -9
  818. package/src/generators/upgrade-module/lib/normalize-options.js.map +0 -1
  819. package/src/generators/upgrade-module/lib/update-module-bootstrap.d.ts +0 -3
  820. package/src/generators/upgrade-module/lib/update-module-bootstrap.js +0 -24
  821. package/src/generators/upgrade-module/lib/update-module-bootstrap.js.map +0 -1
  822. package/src/generators/upgrade-module/schema.d.ts +0 -9
  823. package/src/generators/upgrade-module/schema.json +0 -47
  824. package/src/generators/upgrade-module/upgrade-module.d.ts +0 -4
  825. package/src/generators/upgrade-module/upgrade-module.js +0 -26
  826. package/src/generators/upgrade-module/upgrade-module.js.map +0 -1
  827. package/src/generators/utils/upgrade.d.ts +0 -2
  828. package/src/generators/utils/upgrade.js +0 -25
  829. package/src/generators/utils/upgrade.js.map +0 -1
  830. package/src/migrations/update-12-0-0/update-ngcc-postinstall.js.map +0 -1
  831. package/src/migrations/update-12-3-0/convert-webpack-browser-build-target-to-delegate-build.d.ts +0 -2
  832. package/src/migrations/update-12-3-0/convert-webpack-browser-build-target-to-delegate-build.js +0 -97
  833. package/src/migrations/update-12-3-0/convert-webpack-browser-build-target-to-delegate-build.js.map +0 -1
  834. package/src/migrations/update-12-3-0/update-angular-eslint-rules.js +0 -60
  835. package/src/migrations/update-12-3-0/update-angular-eslint-rules.js.map +0 -1
  836. package/src/migrations/update-12-3-0/update-storybook.d.ts +0 -2
  837. package/src/migrations/update-12-3-0/update-storybook.js +0 -64
  838. package/src/migrations/update-12-3-0/update-storybook.js.map +0 -1
  839. package/src/migrations/update-12-3-0/update-webpack-browser-config.d.ts +0 -2
  840. package/src/migrations/update-12-3-0/update-webpack-browser-config.js +0 -67
  841. package/src/migrations/update-12-3-0/update-webpack-browser-config.js.map +0 -1
  842. package/src/migrations/update-12-9-0/update-invalid-import-paths.d.ts +0 -10
  843. package/src/migrations/update-12-9-0/update-invalid-import-paths.js +0 -94
  844. package/src/migrations/update-12-9-0/update-invalid-import-paths.js.map +0 -1
  845. package/src/migrations/update-13-0-0/add-postcss-packages.d.ts +0 -2
  846. package/src/migrations/update-13-0-0/add-postcss-packages.js +0 -23
  847. package/src/migrations/update-13-0-0/add-postcss-packages.js.map +0 -1
  848. package/src/migrations/update-13-2-0/opt-out-testbed-teardown.js +0 -231
  849. package/src/migrations/update-13-2-0/opt-out-testbed-teardown.js.map +0 -1
  850. package/src/migrations/update-13-2-0/update-angular-config.js +0 -37
  851. package/src/migrations/update-13-2-0/update-angular-config.js.map +0 -1
  852. package/src/migrations/update-13-2-0/update-angular-jest-config.d.ts +0 -3
  853. package/src/migrations/update-13-2-0/update-angular-jest-config.js +0 -79
  854. package/src/migrations/update-13-2-0/update-angular-jest-config.js.map +0 -1
  855. package/src/migrations/update-13-2-0/update-libraries.js +0 -59
  856. package/src/migrations/update-13-2-0/update-libraries.js.map +0 -1
  857. package/src/migrations/update-13-2-0/update-testing-imports.js +0 -108
  858. package/src/migrations/update-13-2-0/update-testing-imports.js.map +0 -1
  859. package/src/migrations/update-13-3-0/update-mfe-webpack-config.d.ts +0 -6
  860. package/src/migrations/update-13-3-0/update-mfe-webpack-config.js +0 -120
  861. package/src/migrations/update-13-3-0/update-mfe-webpack-config.js.map +0 -1
  862. package/src/migrations/update-13-5-0/remove-library-generator-style-default.js +0 -24
  863. package/src/migrations/update-13-5-0/remove-library-generator-style-default.js.map +0 -1
  864. package/src/migrations/update-13-5-0/update-mfe-config.test-data.d.ts +0 -20
  865. package/src/migrations/update-13-5-0/update-mfe-config.test-data.js +0 -718
  866. package/src/migrations/update-13-5-0/update-mfe-config.test-data.js.map +0 -1
  867. package/src/migrations/update-13-5-0/update-mfe-configs.d.ts +0 -5
  868. package/src/migrations/update-13-5-0/update-mfe-configs.js +0 -157
  869. package/src/migrations/update-13-5-0/update-mfe-configs.js.map +0 -1
  870. package/src/migrations/update-13-8-1/add-cypress-mf-workaround.d.ts +0 -2
  871. package/src/migrations/update-13-8-1/add-cypress-mf-workaround.js +0 -38
  872. package/src/migrations/update-13-8-1/add-cypress-mf-workaround.js.map +0 -1
  873. package/src/migrations/update-13-8-4/migrate-karma-conf.d.ts +0 -2
  874. package/src/migrations/update-13-8-4/migrate-karma-conf.js +0 -39
  875. package/src/migrations/update-13-8-4/migrate-karma-conf.js.map +0 -1
  876. package/src/migrations/update-13-9-0/set-build-libs-from-source.d.ts +0 -2
  877. package/src/migrations/update-13-9-0/set-build-libs-from-source.js +0 -27
  878. package/src/migrations/update-13-9-0/set-build-libs-from-source.js.map +0 -1
  879. package/src/migrations/update-14-0-0/rename-mf-config.d.ts +0 -2
  880. package/src/migrations/update-14-0-0/rename-mf-config.js +0 -27
  881. package/src/migrations/update-14-0-0/rename-mf-config.js.map +0 -1
  882. package/src/migrations/update-14-5-7/update-rxjs.d.ts +0 -2
  883. package/src/migrations/update-14-5-7/update-rxjs.js +0 -30
  884. package/src/migrations/update-14-5-7/update-rxjs.js.map +0 -1
  885. package/src/runtime/nx/nx.module.d.ts +0 -15
  886. package/src/runtime/nx/nx.module.js +0 -24
  887. package/src/runtime/nx/nx.module.js.map +0 -1
  888. package/src/utils/mf/mf-webpack.d.ts +0 -15
  889. package/src/utils/mf/mf-webpack.js +0 -185
  890. package/src/utils/mf/mf-webpack.js.map +0 -1
  891. package/src/utils/mf/typescript.d.ts +0 -2
  892. package/src/utils/mf/typescript.js +0 -28
  893. package/src/utils/mf/typescript.js.map +0 -1
  894. package/src/utils/nx-devkit/standalone-utils.d.ts +0 -2
  895. package/src/utils/nx-devkit/standalone-utils.js +0 -37
  896. package/src/utils/nx-devkit/standalone-utils.js.map +0 -1
  897. /package/src/builders/{webpack-server → webpack-dev-server}/lib/index.d.ts +0 -0
  898. /package/src/builders/{webpack-server → webpack-dev-server}/lib/index.js +0 -0
  899. /package/src/builders/{webpack-server → webpack-dev-server}/lib/normalize-options.d.ts +0 -0
  900. /package/src/builders/{webpack-server → webpack-dev-server}/lib/normalize-options.js +0 -0
  901. /package/src/generators/ngrx/files/{__directory__ → latest/__directory__}/__fileName__.actions.ts__tmpl__ +0 -0
  902. /package/src/generators/ngrx/files/{__directory__ → latest/__directory__}/__fileName__.models.ts__tmpl__ +0 -0
  903. /package/src/generators/ngrx/files/{__directory__ → latest/__directory__}/__fileName__.reducer.spec.ts__tmpl__ +0 -0
  904. /package/src/generators/ngrx/files/{__directory__ → latest/__directory__}/__fileName__.reducer.ts__tmpl__ +0 -0
  905. /package/src/generators/{host/files → setup-mf/files/host-files}/app.component.spec.ts__tmpl__ +0 -0
  906. /package/src/generators/{change-storybook-targets/compat.d.ts → setup-ssr/setup-ssr.compat.d.ts} +0 -0
  907. /package/src/migrations/{update-12-3-0/update-angular-eslint-rules.d.ts → update-15-0-0/add-karma-inputs.d.ts} +0 -0
  908. /package/src/migrations/{update-12-0-0/update-ngcc-postinstall.d.ts → update-15-2-0/remove-platform-server-exports.d.ts} +0 -0
  909. /package/src/migrations/{update-13-2-0/opt-out-testbed-teardown.d.ts → update-15-2-0/update-angular-cli.d.ts} +0 -0
  910. /package/src/migrations/{update-13-2-0/update-angular-config.d.ts → update-15-2-0/update-karma-main-file.d.ts} +0 -0
  911. /package/src/migrations/{update-13-2-0/update-testing-imports.d.ts → update-15-5-0/update-angular-cli.d.ts} +0 -0
  912. /package/src/migrations/{update-13-2-0/update-libraries.d.ts → update-15-7-0/install-required-packages.d.ts} +0 -0
  913. /package/src/migrations/{update-13-5-0/remove-library-generator-style-default.d.ts → update-15-8-0/update-angular-cli.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [14.8.8](https://github.com/nrwl/nx/compare/14.8.7...14.8.8) (2023-03-14)
6
+
7
7
 
8
8
  **Note:** Version bump only for package @nrwl/angular
package/LICENSE CHANGED
@@ -1,22 +1,22 @@
1
- (The MIT License)
2
-
3
- Copyright (c) 2017-2022 Narwhal Technologies Inc.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- 'Software'), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2017-2023 Narwhal Technologies Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ 'Software'), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -43,40 +43,19 @@ npm init nx-workspace
43
43
  yarn create nx-workspace
44
44
  ```
45
45
 
46
- The `create-nx-workspace` command will ask you to select a preset, which will configure some plugins and create your applications to help you get started.
47
-
48
- ```
49
- ? What to create in the new workspace (Use arrow keys)
50
- ❯ apps [an empty workspace with no plugins with a layout that works best for building apps]
51
- core [an empty workspace with no plugins set up to publish npm packages (similar to yarn workspaces)]
52
- ts [an empty workspace with the JS/TS plugin preinstalled]
53
- react [a workspace with a single React application]
54
- angular [a workspace with a single Angular application]
55
- next.js [a workspace with a single Next.js application]
56
- nest [a workspace with a single Nest application]
57
- express [a workspace with a single Express application]
58
- web components [a workspace with a single app built using web components]
59
- react-native [a workspace with a single React Native application]
60
- react-express [a workspace with a full stack application (React + Express)]
61
- ```
62
-
63
- Select the preset that works best for you
64
-
65
- ### Adding Nx to an Existing Monorepo
46
+ ### Adding Nx to an Existing Repository
66
47
 
67
48
  Run:
68
49
 
69
50
  ```bash
70
- npx add-nx-to-monorepo@latest
51
+ npx nx@latest init
71
52
  ```
72
53
 
73
54
  ## Documentation & Resources
74
55
 
75
- A few links to help you get started:
76
-
77
- - [Nx.Dev: Documentation, Guides, Interactive Tutorials](https://nx.dev)
78
- - [Tutorial: Adding Nx to an Existing Monorepo](/recipe/adding-to-monorepo)
79
- - [Official Nx YouTube Channel](https://www.youtube.com/c/Nrwl_io)
56
+ - [Nx.Dev: Documentation, Guides, Tutorials](https://nx.dev)
57
+ - [Intro to Nx](https://nx.dev/getting-started/intro)
58
+ - [Official Nx YouTube Channel](https://www.youtube.com/@NxDevtools)
80
59
  - [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
81
60
 
82
61
  <p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-courses-and-videos.svg"
package/esm2020/index.mjs CHANGED
@@ -1,3 +1,2 @@
1
- export { DataPersistence, fetch, navigation, optimisticUpdate, pessimisticUpdate, } from './src/runtime/nx/data-persistence';
2
- export { NxModule } from './src/runtime/nx/nx.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLEtBQUssRUFDTCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixHQUNsQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIERhdGFQZXJzaXN0ZW5jZSxcbiAgZmV0Y2gsXG4gIG5hdmlnYXRpb24sXG4gIG9wdGltaXN0aWNVcGRhdGUsXG4gIHBlc3NpbWlzdGljVXBkYXRlLFxufSBmcm9tICcuL3NyYy9ydW50aW1lL254L2RhdGEtcGVyc2lzdGVuY2UnO1xuZXhwb3J0IHsgTnhNb2R1bGUgfSBmcm9tICcuL3NyYy9ydW50aW1lL254L254Lm1vZHVsZSc7XG4iXX0=
1
+ export { fetch, navigation, optimisticUpdate, pessimisticUpdate, } from './src/runtime/nx/data-persistence';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsaUJBQWlCLEdBQ2xCLE1BQU0sbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBmZXRjaCxcbiAgbmF2aWdhdGlvbixcbiAgb3B0aW1pc3RpY1VwZGF0ZSxcbiAgcGVzc2ltaXN0aWNVcGRhdGUsXG59IGZyb20gJy4vc3JjL3J1bnRpbWUvbngvZGF0YS1wZXJzaXN0ZW5jZSc7XG4iXX0=
package/esm2020/mf/mf.mjs CHANGED
@@ -36,10 +36,13 @@ async function loadRemoteContainer(remoteName) {
36
36
  const remoteUrl = remoteUrlDefinitions
37
37
  ? remoteUrlDefinitions[remoteName]
38
38
  : await resolveRemoteUrl(remoteName);
39
- const containerUrl = `${remoteUrl}${remoteUrl.endsWith('/') ? '' : '/'}remoteEntry.mjs`;
39
+ let containerUrl = remoteUrl;
40
+ if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {
41
+ containerUrl = `${remoteUrl}${remoteUrl.endsWith('/') ? '' : '/'}remoteEntry.mjs`;
42
+ }
40
43
  const container = await loadModule(containerUrl);
41
44
  await container.init(__webpack_share_scopes__.default);
42
45
  remoteContainerMap.set(remoteName, container);
43
46
  return container;
44
47
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tZi9tZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxJQUFJLGdCQUEwQyxDQUFDO0FBQy9DLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsaUJBQTJDO0lBRTNDLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZDLENBQUM7QUFFRCxJQUFJLG9CQUE0QyxDQUFDO0FBQ2pELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxXQUFtQztJQUN0RSxvQkFBb0IsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQztBQUVELElBQUksZUFBZSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0FBQ2pELElBQUksa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7QUFDcEQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO0lBQzNFLE1BQU0sZUFBZSxHQUFHLEdBQUcsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3RELElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN4QyxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDN0M7SUFFRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUV6QixlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFDdkMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFVBQWtCO0lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1FBQzlDLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0hBQWtILENBQ25ILENBQUM7S0FDSDtJQUVELElBQUksQ0FBQywwQkFBMEIsRUFBRTtRQUMvQiwwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMzQztJQUVELE1BQU0sU0FBUyxHQUFHLG9CQUFvQjtRQUNwQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXZDLE1BQU0sWUFBWSxHQUFHLEdBQUcsU0FBUyxHQUMvQixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQ2pDLGlCQUFpQixDQUFDO0lBRWxCLE1BQU0sU0FBUyxHQUFHLE1BQU0sVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV2RCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZXNvbHZlUmVtb3RlVXJsRnVuY3Rpb24gPSAoXG4gIHJlbW90ZU5hbWU6IHN0cmluZ1xuKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XG5cbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX2luaXRfc2hhcmluZ19fOiAoc2NvcGU6ICdkZWZhdWx0JykgPT4gUHJvbWlzZTx2b2lkPjtcbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX3NoYXJlX3Njb3Blc19fOiB7IGRlZmF1bHQ6IHVua25vd24gfTtcblxubGV0IHJlc29sdmVSZW1vdGVVcmw6IFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvbjtcbmV4cG9ydCBmdW5jdGlvbiBzZXRSZW1vdGVVcmxSZXNvbHZlcihcbiAgX3Jlc29sdmVSZW1vdGVVcmw6IFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvblxuKSB7XG4gIHJlc29sdmVSZW1vdGVVcmwgPSBfcmVzb2x2ZVJlbW90ZVVybDtcbn1cblxubGV0IHJlbW90ZVVybERlZmluaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuZXhwb3J0IGZ1bmN0aW9uIHNldFJlbW90ZURlZmluaXRpb25zKGRlZmluaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIHJlbW90ZVVybERlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG59XG5cbmxldCByZW1vdGVNb2R1bGVNYXAgPSBuZXcgTWFwPHN0cmluZywgdW5rbm93bj4oKTtcbmxldCByZW1vdGVDb250YWluZXJNYXAgPSBuZXcgTWFwPHN0cmluZywgdW5rbm93bj4oKTtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkUmVtb3RlTW9kdWxlKHJlbW90ZU5hbWU6IHN0cmluZywgbW9kdWxlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHJlbW90ZU1vZHVsZUtleSA9IGAke3JlbW90ZU5hbWV9OiR7bW9kdWxlTmFtZX1gO1xuICBpZiAocmVtb3RlTW9kdWxlTWFwLmhhcyhyZW1vdGVNb2R1bGVLZXkpKSB7XG4gICAgcmV0dXJuIHJlbW90ZU1vZHVsZU1hcC5nZXQocmVtb3RlTW9kdWxlS2V5KTtcbiAgfVxuXG4gIGNvbnN0IGNvbnRhaW5lciA9IHJlbW90ZUNvbnRhaW5lck1hcC5oYXMocmVtb3RlTmFtZSlcbiAgICA/IHJlbW90ZUNvbnRhaW5lck1hcC5nZXQocmVtb3RlTmFtZSlcbiAgICA6IGF3YWl0IGxvYWRSZW1vdGVDb250YWluZXIocmVtb3RlTmFtZSk7XG5cbiAgY29uc3QgZmFjdG9yeSA9IGF3YWl0IGNvbnRhaW5lci5nZXQobW9kdWxlTmFtZSk7XG4gIGNvbnN0IE1vZHVsZSA9IGZhY3RvcnkoKTtcblxuICByZW1vdGVNb2R1bGVNYXAuc2V0KHJlbW90ZU1vZHVsZUtleSwgTW9kdWxlKTtcblxuICByZXR1cm4gTW9kdWxlO1xufVxuXG5mdW5jdGlvbiBsb2FkTW9kdWxlKHVybDogc3RyaW5nKSB7XG4gIHJldHVybiBpbXBvcnQoLyogd2VicGFja0lnbm9yZTp0cnVlICovIHVybCk7XG59XG5cbmxldCBpbml0aWFsU2hhcmluZ1Njb3BlQ3JlYXRlZCA9IGZhbHNlO1xuYXN5bmMgZnVuY3Rpb24gbG9hZFJlbW90ZUNvbnRhaW5lcihyZW1vdGVOYW1lOiBzdHJpbmcpIHtcbiAgaWYgKCFyZXNvbHZlUmVtb3RlVXJsICYmICFyZW1vdGVVcmxEZWZpbml0aW9ucykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYWxsIHNldFJlbW90ZURlZmluaXRpb25zIG9yIHNldFJlbW90ZVVybFJlc29sdmVyIHRvIGFsbG93IER5bmFtaWMgRmVkZXJhdGlvbiB0byBmaW5kIHRoZSByZW1vdGUgYXBwcyBjb3JyZWN0bHkuJ1xuICAgICk7XG4gIH1cblxuICBpZiAoIWluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkKSB7XG4gICAgaW5pdGlhbFNoYXJpbmdTY29wZUNyZWF0ZWQgPSB0cnVlO1xuICAgIGF3YWl0IF9fd2VicGFja19pbml0X3NoYXJpbmdfXygnZGVmYXVsdCcpO1xuICB9XG5cbiAgY29uc3QgcmVtb3RlVXJsID0gcmVtb3RlVXJsRGVmaW5pdGlvbnNcbiAgICA/IHJlbW90ZVVybERlZmluaXRpb25zW3JlbW90ZU5hbWVdXG4gICAgOiBhd2FpdCByZXNvbHZlUmVtb3RlVXJsKHJlbW90ZU5hbWUpO1xuXG4gIGNvbnN0IGNvbnRhaW5lclVybCA9IGAke3JlbW90ZVVybH0ke1xuICAgIHJlbW90ZVVybC5lbmRzV2l0aCgnLycpID8gJycgOiAnLydcbiAgfXJlbW90ZUVudHJ5Lm1qc2A7XG5cbiAgY29uc3QgY29udGFpbmVyID0gYXdhaXQgbG9hZE1vZHVsZShjb250YWluZXJVcmwpO1xuICBhd2FpdCBjb250YWluZXIuaW5pdChfX3dlYnBhY2tfc2hhcmVfc2NvcGVzX18uZGVmYXVsdCk7XG5cbiAgcmVtb3RlQ29udGFpbmVyTWFwLnNldChyZW1vdGVOYW1lLCBjb250YWluZXIpO1xuICByZXR1cm4gY29udGFpbmVyO1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tZi9tZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxJQUFJLGdCQUEwQyxDQUFDO0FBQy9DLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsaUJBQTJDO0lBRTNDLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZDLENBQUM7QUFFRCxJQUFJLG9CQUE0QyxDQUFDO0FBQ2pELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxXQUFtQztJQUN0RSxvQkFBb0IsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQztBQUVELElBQUksZUFBZSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0FBQ2pELElBQUksa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7QUFDcEQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO0lBQzNFLE1BQU0sZUFBZSxHQUFHLEdBQUcsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3RELElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN4QyxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDN0M7SUFFRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUV6QixlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFDdkMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFVBQWtCO0lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1FBQzlDLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0hBQWtILENBQ25ILENBQUM7S0FDSDtJQUVELElBQUksQ0FBQywwQkFBMEIsRUFBRTtRQUMvQiwwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMzQztJQUVELE1BQU0sU0FBUyxHQUFHLG9CQUFvQjtRQUNwQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXZDLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDN0QsWUFBWSxHQUFHLEdBQUcsU0FBUyxHQUN6QixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQ2pDLGlCQUFpQixDQUFDO0tBQ25CO0lBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXZELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvbiA9IChcbiAgcmVtb3RlTmFtZTogc3RyaW5nXG4pID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcblxuZGVjbGFyZSBjb25zdCBfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX186IChzY29wZTogJ2RlZmF1bHQnKSA9PiBQcm9taXNlPHZvaWQ+O1xuZGVjbGFyZSBjb25zdCBfX3dlYnBhY2tfc2hhcmVfc2NvcGVzX186IHsgZGVmYXVsdDogdW5rbm93biB9O1xuXG5sZXQgcmVzb2x2ZVJlbW90ZVVybDogUmVzb2x2ZVJlbW90ZVVybEZ1bmN0aW9uO1xuZXhwb3J0IGZ1bmN0aW9uIHNldFJlbW90ZVVybFJlc29sdmVyKFxuICBfcmVzb2x2ZVJlbW90ZVVybDogUmVzb2x2ZVJlbW90ZVVybEZ1bmN0aW9uXG4pIHtcbiAgcmVzb2x2ZVJlbW90ZVVybCA9IF9yZXNvbHZlUmVtb3RlVXJsO1xufVxuXG5sZXQgcmVtb3RlVXJsRGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5leHBvcnQgZnVuY3Rpb24gc2V0UmVtb3RlRGVmaW5pdGlvbnMoZGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgcmVtb3RlVXJsRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucztcbn1cblxubGV0IHJlbW90ZU1vZHVsZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xubGV0IHJlbW90ZUNvbnRhaW5lck1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRSZW1vdGVNb2R1bGUocmVtb3RlTmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgcmVtb3RlTW9kdWxlS2V5ID0gYCR7cmVtb3RlTmFtZX06JHttb2R1bGVOYW1lfWA7XG4gIGlmIChyZW1vdGVNb2R1bGVNYXAuaGFzKHJlbW90ZU1vZHVsZUtleSkpIHtcbiAgICByZXR1cm4gcmVtb3RlTW9kdWxlTWFwLmdldChyZW1vdGVNb2R1bGVLZXkpO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyID0gcmVtb3RlQ29udGFpbmVyTWFwLmhhcyhyZW1vdGVOYW1lKVxuICAgID8gcmVtb3RlQ29udGFpbmVyTWFwLmdldChyZW1vdGVOYW1lKVxuICAgIDogYXdhaXQgbG9hZFJlbW90ZUNvbnRhaW5lcihyZW1vdGVOYW1lKTtcblxuICBjb25zdCBmYWN0b3J5ID0gYXdhaXQgY29udGFpbmVyLmdldChtb2R1bGVOYW1lKTtcbiAgY29uc3QgTW9kdWxlID0gZmFjdG9yeSgpO1xuXG4gIHJlbW90ZU1vZHVsZU1hcC5zZXQocmVtb3RlTW9kdWxlS2V5LCBNb2R1bGUpO1xuXG4gIHJldHVybiBNb2R1bGU7XG59XG5cbmZ1bmN0aW9uIGxvYWRNb2R1bGUodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGltcG9ydCgvKiB3ZWJwYWNrSWdub3JlOnRydWUgKi8gdXJsKTtcbn1cblxubGV0IGluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkID0gZmFsc2U7XG5hc3luYyBmdW5jdGlvbiBsb2FkUmVtb3RlQ29udGFpbmVyKHJlbW90ZU5hbWU6IHN0cmluZykge1xuICBpZiAoIXJlc29sdmVSZW1vdGVVcmwgJiYgIXJlbW90ZVVybERlZmluaXRpb25zKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0NhbGwgc2V0UmVtb3RlRGVmaW5pdGlvbnMgb3Igc2V0UmVtb3RlVXJsUmVzb2x2ZXIgdG8gYWxsb3cgRHluYW1pYyBGZWRlcmF0aW9uIHRvIGZpbmQgdGhlIHJlbW90ZSBhcHBzIGNvcnJlY3RseS4nXG4gICAgKTtcbiAgfVxuXG4gIGlmICghaW5pdGlhbFNoYXJpbmdTY29wZUNyZWF0ZWQpIHtcbiAgICBpbml0aWFsU2hhcmluZ1Njb3BlQ3JlYXRlZCA9IHRydWU7XG4gICAgYXdhaXQgX193ZWJwYWNrX2luaXRfc2hhcmluZ19fKCdkZWZhdWx0Jyk7XG4gIH1cblxuICBjb25zdCByZW1vdGVVcmwgPSByZW1vdGVVcmxEZWZpbml0aW9uc1xuICAgID8gcmVtb3RlVXJsRGVmaW5pdGlvbnNbcmVtb3RlTmFtZV1cbiAgICA6IGF3YWl0IHJlc29sdmVSZW1vdGVVcmwocmVtb3RlTmFtZSk7XG5cbiAgbGV0IGNvbnRhaW5lclVybCA9IHJlbW90ZVVybDtcbiAgaWYgKCFyZW1vdGVVcmwuZW5kc1dpdGgoJy5tanMnKSAmJiAhcmVtb3RlVXJsLmVuZHNXaXRoKCcuanMnKSkge1xuICAgIGNvbnRhaW5lclVybCA9IGAke3JlbW90ZVVybH0ke1xuICAgICAgcmVtb3RlVXJsLmVuZHNXaXRoKCcvJykgPyAnJyA6ICcvJ1xuICAgIH1yZW1vdGVFbnRyeS5tanNgO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyID0gYXdhaXQgbG9hZE1vZHVsZShjb250YWluZXJVcmwpO1xuICBhd2FpdCBjb250YWluZXIuaW5pdChfX3dlYnBhY2tfc2hhcmVfc2NvcGVzX18uZGVmYXVsdCk7XG5cbiAgcmVtb3RlQ29udGFpbmVyTWFwLnNldChyZW1vdGVOYW1lLCBjb250YWluZXIpO1xuICByZXR1cm4gY29udGFpbmVyO1xufVxuIl19
@@ -1,11 +1,6 @@
1
- import { Injectable } from '@angular/core';
2
- import { ofType } from '@ngrx/effects';
3
1
  import { ROUTER_NAVIGATION } from '@ngrx/router-store';
4
2
  import { isObservable, of } from 'rxjs';
5
- import { catchError, concatMap, filter, groupBy, map, mergeMap, switchMap, withLatestFrom, } from 'rxjs/operators';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ngrx/store";
8
- import * as i2 from "@ngrx/effects";
3
+ import { catchError, concatMap, filter, groupBy, map, mergeMap, switchMap, } from 'rxjs/operators';
9
4
  /**
10
5
  *
11
6
  * @whatItDoes Handles pessimistic updates (updating the server first).
@@ -323,58 +318,6 @@ function normalizeActionAndState(args) {
323
318
  }
324
319
  return [action, ...slices];
325
320
  }
326
- /**
327
- * @whatItDoes Provides convenience methods for implementing common operations of persisting data.
328
- *
329
- * @deprecated Use the individual operators instead. Will be removed in v15.
330
- */
331
- export class DataPersistence {
332
- constructor(store, actions) {
333
- this.store = store;
334
- this.actions = actions;
335
- }
336
- /**
337
- * See {@link pessimisticUpdate} operator for more information.
338
- *
339
- * @deprecated Use the {@link pessimisticUpdate} operator instead.
340
- * The {@link DataPersistence} class will be removed in v15.
341
- */
342
- pessimisticUpdate(actionType, opts) {
343
- return this.actions.pipe(ofType(actionType), withLatestFrom(this.store), pessimisticUpdate(opts));
344
- }
345
- /**
346
- * See {@link optimisticUpdate} operator for more information.
347
- *
348
- * @deprecated Use the {@link optimisticUpdate} operator instead.
349
- * The {@link DataPersistence} class will be removed in v15.
350
- */
351
- optimisticUpdate(actionType, opts) {
352
- return this.actions.pipe(ofType(actionType), withLatestFrom(this.store), optimisticUpdate(opts));
353
- }
354
- /**
355
- * See {@link fetch} operator for more information.
356
- *
357
- * @deprecated Use the {@link fetch} operator instead.
358
- * The {@link DataPersistence} class will be removed in v15.
359
- */
360
- fetch(actionType, opts) {
361
- return this.actions.pipe(ofType(actionType), withLatestFrom(this.store), fetch(opts));
362
- }
363
- /**
364
- * See {@link navigation} operator for more information.
365
- *
366
- * @deprecated Use the {@link navigation} operator instead.
367
- * The {@link DataPersistence} class will be removed in v15.
368
- */
369
- navigation(component, opts) {
370
- return this.actions.pipe(withLatestFrom(this.store), navigation(component, opts));
371
- }
372
- }
373
- DataPersistence.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: DataPersistence, deps: [{ token: i1.Store }, { token: i2.Actions }], target: i0.ɵɵFactoryTarget.Injectable });
374
- DataPersistence.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: DataPersistence });
375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: DataPersistence, decorators: [{
376
- type: Injectable
377
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Actions }]; } });
378
321
  function findSnapshot(component, s) {
379
322
  if (s.routeConfig && s.routeConfig.component === component) {
380
323
  return s;
@@ -398,4 +341,4 @@ function wrapIntoObservable(obj) {
398
341
  return of(obj);
399
342
  }
400
343
  }
401
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wZXJzaXN0ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ydW50aW1lL254L2RhdGEtcGVyc2lzdGVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQVcsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBMEIsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLEdBQUcsRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDOzs7O0FBcUN4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3REc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQWlDO0lBRWpDLE9BQU8sQ0FBQyxNQUFnQyxFQUFzQixFQUFFO1FBQzlELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDaEIsaUJBQWlCLEVBQUUsRUFDbkIsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3hELENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlERztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsSUFBZ0M7SUFFaEMsT0FBTyxDQUFDLE1BQWdDLEVBQXNCLEVBQUU7UUFDOUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixpQkFBaUIs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LE9BQU8sQ0FBQyxDQUFDO0tBQ1Y7SUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDMUIsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFJLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxDQUFDO1NBQ1g7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUksR0FBNkI7SUFDMUQsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDckIsT0FBTyxHQUFHLENBQUM7S0FDWjtTQUFNLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDZixPQUFPLEVBQUUsRUFBRSxDQUFDO0tBQ2I7U0FBTTtRQUNMLE9BQU8sRUFBRSxDQUFDLEdBQVEsQ0FBQyxDQUFDO0tBQ3JCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBST1VURVJfTkFWSUdBVElPTiwgUm91dGVyTmF2aWdhdGlvbkFjdGlvbiB9IGZyb20gJ0BuZ3J4L3JvdXRlci1zdG9yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlLCBBY3Rpb25DcmVhdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgY29uY2F0TWFwLFxuICBmaWx0ZXIsXG4gIGdyb3VwQnksXG4gIG1hcCxcbiAgbWVyZ2VNYXAsXG4gIHN3aXRjaE1hcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBQZXNzaW1pc3RpY1VwZGF0ZU9wdHM8VCBleHRlbmRzIEFycmF5PHVua25vd24+LCBBPiB7XG4gIHJ1bihhOiBBLCAuLi5zbGljZXM6IFsuLi5UXSk6IE9ic2VydmFibGU8QWN0aW9uPiB8IEFjdGlvbiB8IHZvaWQ7XG4gIG9uRXJyb3IoYTogQSwgZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHwgYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGltaXN0aWNVcGRhdGVPcHRzPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPiwgQT4ge1xuICBydW4oYTogQSwgLi4uc2xpY2VzOiBbLi4uVF0pOiBPYnNlcnZhYmxlPEFjdGlvbj4gfCBBY3Rpb24gfCB2b2lkO1xuICB1bmRvQWN0aW9uKGE6IEEsIGU6IGFueSk6IE9ic2VydmFibGU8QWN0aW9uPiB8IEFjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaE9wdHM8VCBleHRlbmRzIEFycmF5PHVua25vd24+LCBBPiB7XG4gIGlkPyhhOiBBLCAuLi5zbGljZXM6IFsuLi5UXSk6IGFueTtcbiAgcnVuKGE6IEEsIC4uLnNsaWNlczogWy4uLlRdKTogT2JzZXJ2YWJsZTxBY3Rpb24+IHwgQWN0aW9uIHwgdm9pZDtcbiAgb25FcnJvcj8oYTogQSwgZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHwgYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZU5hdmlnYXRpb25PcHRzPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPj4ge1xuICBydW4oXG4gICAgYTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICAuLi5zbGljZXM6IFsuLi5UXVxuICApOiBPYnNlcnZhYmxlPEFjdGlvbj4gfCBBY3Rpb24gfCB2b2lkO1xuICBvbkVycm9yPyhhOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4gfCBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvbk9yQWN0aW9uV2l0aFN0YXRlczxUIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIEE+ID1cbiAgfCBBXG4gIHwgW0EsIC4uLlRdO1xuZXhwb3J0IHR5cGUgQWN0aW9uT3JBY3Rpb25XaXRoU3RhdGU8VCwgQT4gPSBBY3Rpb25PckFjdGlvbldpdGhTdGF0ZXM8W1RdLCBBPjtcbmV4cG9ydCB0eXBlIEFjdGlvblN0YXRlc1N0cmVhbTxUIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIEE+ID0gT2JzZXJ2YWJsZTxcbiAgQWN0aW9uT3JBY3Rpb25XaXRoU3RhdGVzPFQsIEE+XG4+O1xuZXhwb3J0IHR5cGUgQWN0aW9uU3RhdGVTdHJlYW08VCwgQT4gPSBPYnNlcnZhYmxlPFxuICBBY3Rpb25PckFjdGlvbldpdGhTdGF0ZXM8W1RdLCBBPlxuPjtcblxuLyoqXG4gKlxuICogQHdoYXRJdERvZXMgSGFuZGxlcyBwZXNzaW1pc3RpYyB1cGRhdGVzICh1cGRhdGluZyB0aGUgc2VydmVyIGZpcnN0KS5cbiAqXG4gKiBVcGRhdGluZyB0aGUgc2VydmVyLCB3aGVuIGltcGxlbWVudGVkIG5haXZlbHksIHN1ZmZlcnMgZnJvbSByYWNlIGNvbmRpdGlvbnMgYW5kIHBvb3IgZXJyb3IgaGFuZGxpbmcuXG4gKlxuICogYHBlc3NpbWlzdGljVXBkYXRlYCBhZGRyZXNzZXMgdGhlc2UgcHJvYmxlbXMuIEl0IHJ1bnMgYWxsIGZldGNoZXMgaW4gb3JkZXIsIHdoaWNoIHJlbW92ZXMgcmFjZSBjb25kaXRpb25zXG4gKiBhbmQgZm9yY2VzIHRoZSBkZXZlbG9wZXIgdG8gaGFuZGxlIGVycm9ycy5cbiAqXG4gKiAjIyBFeGFtcGxlOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIEBJbmplY3RhYmxlKClcbiAqIGNsYXNzIFRvZG9FZmZlY3RzIHtcbiAqICAgdXBkYXRlVG9kbyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAqICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gKiAgICAgICBvZlR5cGUoJ1VQREFURV9UT0RPJyksXG4gKiAgICAgICBwZXNzaW1pc3RpY1VwZGF0ZSh7XG4gKiAgICAgICAgIC8vIHByb3ZpZGVzIGFuIGFjdGlvblxuICogICAgICAgICBydW46IChhY3Rpb246IFVwZGF0ZVRvZG8pID0+IHtcbiAqICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGJhY2tlbmQgZmlyc3QsIGFuZCB0aGVuIGRpc3BhdGNoIGFuIGFjdGlvbiB0aGF0IHdpbGxcbiAqICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGNsaWVudCBzaWRlXG4gKiAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC51cGRhdGVUb2RvKGFjdGlvbi50b2RvLmlkLCBhY3Rpb24udG9kbykucGlwZShcbiAqICAgICAgICAgICAgIG1hcCgodXBkYXRlZCkgPT4gKHtcbiAqICAgICAgICAgICAgICAgdHlwZTogJ1VQREFURV9UT0RPX1NVQ0NFU1MnLFxuICogICAgICAgICAgICAgICB0b2RvOiB1cGRhdGVkLFxuICogICAgICAgICAgICAgfSkpXG4gKiAgICAgICAgICAgKTtcbiAqICAgICAgICAgfSxcbiAqICAgICAgICAgb25FcnJvcjogKGFjdGlvbjogVXBkYXRlVG9kbywgZXJyb3I6IGFueSkgPT4ge1xuICogICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gdW5kbyB0aGUgY2hhbmdlcyBvbiB0aGUgY2xpZW50IHNpZGUuXG4gKiAgICAgICAgICAgLy8gd2UgY2FuIGRpc3BhdGNoIGFuIGVycm9yLCBvciBzaW1wbHkgbG9nIHRoZSBlcnJvciBoZXJlIGFuZCByZXR1cm4gYG51bGxgXG4gKiAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICB9KVxuICogICAgIClcbiAqICAgKTtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgYmFja2VuZDogQmFja2VuZCkge31cbiAqIH1cbiAqIGBgYFxuICpcbiAqIE5vdGUgdGhhdCBpZiB5b3UgZG9uJ3QgcmV0dXJuIGEgbmV3IGFjdGlvbiBmcm9tIHRoZSBydW4gY2FsbGJhY2ssIHlvdSBtdXN0IHNldCB0aGUgZGlzcGF0Y2ggcHJvcGVydHlcbiAqIG9mIHRoZSBlZmZlY3QgdG8gZmFsc2UsIGxpa2UgdGhpczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBUb2RvRWZmZWN0cyB7XG4gKiAgIHVwZGF0ZVRvZG8kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gKiAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICogICAgICAgLy8uLi5cbiAqICAgICApLCB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGVzc2ltaXN0aWNVcGRhdGU8VCBleHRlbmRzIEFycmF5PHVua25vd24+LCBBIGV4dGVuZHMgQWN0aW9uPihcbiAgb3B0czogUGVzc2ltaXN0aWNVcGRhdGVPcHRzPFQsIEE+XG4pIHtcbiAgcmV0dXJuIChzb3VyY2U6IEFjdGlvblN0YXRlc1N0cmVhbTxULCBBPik6IE9ic2VydmFibGU8QWN0aW9uPiA9PiB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgbWFwQWN0aW9uQW5kU3RhdGUoKSxcbiAgICAgIGNvbmNhdE1hcChydW5XaXRoRXJyb3JIYW5kbGluZyhvcHRzLnJ1biwgb3B0cy5vbkVycm9yKSlcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqXG4gKiBAd2hhdEl0RG9lcyBIYW5kbGVzIG9wdGltaXN0aWMgdXBkYXRlcyAodXBkYXRpbmcgdGhlIGNsaWVudCBmaXJzdCkuXG4gKlxuICogSXQgcnVucyBhbGwgZmV0Y2hlcyBpbiBvcmRlciwgd2hpY2ggcmVtb3ZlcyByYWNlIGNvbmRpdGlvbnMgYW5kIGZvcmNlcyB0aGUgZGV2ZWxvcGVyIHRvIGhhbmRsZSBlcnJvcnMuXG4gKlxuICogV2hlbiB1c2luZyBgb3B0aW1pc3RpY1VwZGF0ZWAsIGluIGNhc2Ugb2YgYSBmYWlsdXJlLCB0aGUgZGV2ZWxvcGVyIGhhcyBhbHJlYWR5IHVwZGF0ZWQgdGhlIHN0YXRlIGxvY2FsbHksXG4gKiBzbyB0aGUgZGV2ZWxvcGVyIG11c3QgcHJvdmlkZSBhbiB1bmRvIGFjdGlvbi5cbiAqXG4gKiBUaGUgZXJyb3IgaGFuZGxpbmcgbXVzdCBiZSBkb25lIGluIHRoZSBjYWxsYmFjaywgb3IgYnkgbWVhbnMgb2YgdGhlIHVuZG8gYWN0aW9uLlxuICpcbiAqICMjIEV4YW1wbGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogQEluamVjdGFibGUoKVxuICogY2xhc3MgVG9kb0VmZmVjdHMge1xuICogICB1cGRhdGVUb2RvJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICogICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAqICAgICAgIG9mVHlwZSgnVVBEQVRFX1RPRE8nKSxcbiAqICAgICAgIG9wdGltaXN0aWNVcGRhdGUoe1xuICogICAgICAgICAvLyBwcm92aWRlcyBhbiBhY3Rpb25cbiAqICAgICAgICAgcnVuOiAoYWN0aW9uOiBVcGRhdGVUb2RvKSA9PiB7XG4gKiAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC51cGRhdGVUb2RvKGFjdGlvbi50b2RvLmlkLCBhY3Rpb24udG9kbykucGlwZShcbiAqICAgICAgICAgICAgIG1hcFRvKHtcbiAqICAgICAgICAgICAgICAgdHlwZTogJ1VQREFURV9UT0RPX1NVQ0NFU1MnLFxuICogICAgICAgICAgICAgfSlcbiAqICAgICAgICAgICApO1xuICogICAgICAgICB9LFxuICogICAgICAgICB1bmRvQWN0aW9uOiAoYWN0aW9uOiBVcGRhdGVUb2RvLCBlcnJvcjogYW55KSA9PiB7XG4gKiAgICAgICAgICAgLy8gZGlzcGF0Y2ggYW4gdW5kbyBhY3Rpb24gdG8gdW5kbyB0aGUgY2hhbmdlcyBpbiB0aGUgY2xpZW50IHN0YXRlXG4gKiAgICAgICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAgICAgIHR5cGU6ICdVTkRPX1RPRE9fVVBEQVRFJyxcbiAqICAgICAgICAgICAgIHRvZG86IGFjdGlvbi50b2RvLFxuICogICAgICAgICAgIH07XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICB9KVxuICogICAgIClcbiAqICAgKTtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgYmFja2VuZDogQmFja2VuZCkge31cbiAqIH1cbiAqIGBgYFxuICpcbiAqIE5vdGUgdGhhdCBpZiB5b3UgZG9uJ3QgcmV0dXJuIGEgbmV3IGFjdGlvbiBmcm9tIHRoZSBydW4gY2FsbGJhY2ssIHlvdSBtdXN0IHNldCB0aGUgZGlzcGF0Y2ggcHJvcGVydHlcbiAqIG9mIHRoZSBlZmZlY3QgdG8gZmFsc2UsIGxpa2UgdGhpczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBUb2RvRWZmZWN0cyB7XG4gKiAgIHVwZGF0ZVRvZG8kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gKiAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICogICAgICAgLy8uLi5cbiAqICAgICApLCB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gb3B0aW1pc3RpY1VwZGF0ZTxUIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIEEgZXh0ZW5kcyBBY3Rpb24+KFxuICBvcHRzOiBPcHRpbWlzdGljVXBkYXRlT3B0czxULCBBPlxuKSB7XG4gIHJldHVybiAoc291cmNlOiBBY3Rpb25TdGF0ZXNTdHJlYW08VCwgQT4pOiBPYnNlcnZhYmxlPEFjdGlvbj4gPT4ge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShcbiAgICAgIG1hcEFjdGlvbkFuZFN0YXRlKCksXG4gICAgICBjb25jYXRNYXAocnVuV2l0aEVycm9ySGFuZGxpbmcob3B0cy5ydW4sIG9wdHMudW5kb0FjdGlvbikpXG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKlxuICogQHdoYXRJdERvZXMgSGFuZGxlcyBkYXRhIGZldGNoaW5nLlxuICpcbiAqIERhdGEgZmV0Y2hpbmcgaW1wbGVtZW50ZWQgbmFpdmVseSBzdWZmZXJzIGZyb20gcmFjZSBjb25kaXRpb25zIGFuZCBwb29yIGVycm9yIGhhbmRsaW5nLlxuICpcbiAqIGBmZXRjaGAgYWRkcmVzc2VzIHRoZXNlIHByb2JsZW1zLiBJdCBydW5zIGFsbCBmZXRjaGVzIGluIG9yZGVyLCB3aGljaCByZW1vdmVzIHJhY2UgY29uZGl0aW9uc1xuICogYW5kIGZvcmNlcyB0aGUgZGV2ZWxvcGVyIHRvIGhhbmRsZSBlcnJvcnMuXG4gKlxuICogIyMgRXhhbXBsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSgpXG4gKiBjbGFzcyBUb2RvRWZmZWN0cyB7XG4gKiAgIGxvYWRUb2RvcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAqICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gKiAgICAgICBvZlR5cGUoJ0dFVF9UT0RPUycpLFxuICogICAgICAgZmV0Y2goe1xuICogICAgICAgICAvLyBwcm92aWRlcyBhbiBhY3Rpb25cbiAqICAgICAgICAgcnVuOiAoYTogR2V0VG9kb3MpID0+IHtcbiAqICAgICAgICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEFsbCgpLnBpcGUoXG4gKiAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiAoe1xuICogICAgICAgICAgICAgICB0eXBlOiAnVE9ET1MnLFxuICogICAgICAgICAgICAgICB0b2RvczogcmVzcG9uc2UudG9kb3MsXG4gKiAgICAgICAgICAgICB9KSlcbiAqICAgICAgICAgICApO1xuICogICAgICAgICB9LFxuICogICAgICAgICBvbkVycm9yOiAoYWN0aW9uOiBHZXRUb2RvcywgZXJyb3I6IGFueSkgPT4ge1xuICogICAgICAgICAgIC8vIGRpc3BhdGNoIGFuIHVuZG8gYWN0aW9uIHRvIHVuZG8gdGhlIGNoYW5nZXMgaW4gdGhlIGNsaWVudCBzdGF0ZVxuICogICAgICAgICAgIHJldHVybiBudWxsO1xuICogICAgICAgICB9LFxuICogICAgICAgfSlcbiAqICAgICApXG4gKiAgICk7XG4gKlxuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmQpIHt9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBUaGlzIGlzIGNvcnJlY3QsIGJ1dCBiZWNhdXNlIGl0IHNldCB0aGUgY29uY3VycmVuY3kgdG8gMSwgaXQgbWF5IG5vdCBiZSBwZXJmb3JtYW50LlxuICpcbiAqIFRvIGZpeCB0aGF0LCB5b3UgY2FuIHByb3ZpZGUgdGhlIGBpZGAgZnVuY3Rpb24sIGxpa2UgdGhpczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSgpXG4gKiBjbGFzcyBUb2RvRWZmZWN0cyB7XG4gKiAgIGxvYWRUb2RvJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICogICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAqICAgICAgIG9mVHlwZSgnR0VUX1RPRE8nKSxcbiAqICAgICAgIGZldGNoKHtcbiAqICAgICAgICAgaWQ6ICh0b2RvOiBHZXRUb2RvKSA9PiB7XG4gKiAgICAgICAgICAgcmV0dXJuIHRvZG8uaWQ7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIC8vIHByb3ZpZGVzIGFuIGFjdGlvblxuICogICAgICAgICBydW46ICh0b2RvOiBHZXRUb2RvKSA9PiB7XG4gKiAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRUb2RvKHRvZG8uaWQpLm1hcCgocmVzcG9uc2UpID0+ICh7XG4gKiAgICAgICAgICAgICB0eXBlOiAnTE9BRF9UT0RPX1NVQ0NFU1MnLFxuICogICAgICAgICAgICAgdG9kbzogcmVzcG9uc2UudG9kbyxcbiAqICAgICAgICAgICB9KSk7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIG9uRXJyb3I6IChhY3Rpb246IEdldFRvZG8sIGVycm9yOiBhbnkpID0+IHtcbiAqICAgICAgICAgICAvLyBkaXNwYXRjaCBhbiB1bmRvIGFjdGlvbiB0byB1bmRvIHRoZSBjaGFuZ2VzIGluIHRoZSBjbGllbnQgc3RhdGVcbiAqICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAqICAgICAgICAgfSxcbiAqICAgICAgIH0pXG4gKiAgICAgKVxuICogICApO1xuICpcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucywgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kKSB7fVxuICogfVxuICogYGBgXG4gKlxuICogV2l0aCB0aGlzIHNldHVwLCB0aGUgcmVxdWVzdHMgZm9yIFRvZG8gMSB3aWxsIHJ1biBjb25jdXJyZW50bHkgd2l0aCB0aGUgcmVxdWVzdHMgZm9yIFRvZG8gMi5cbiAqXG4gKiBJbiBhZGRpdGlvbiwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIHJlcXVlc3RzIGZvciBUb2RvIDEgc2NoZWR1bGVkLCBpdCB3aWxsIG9ubHkgcnVuIHRoZSBsYXN0IG9uZS5cbiAqXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2g8VCBleHRlbmRzIEFycmF5PHVua25vd24+LCBBIGV4dGVuZHMgQWN0aW9uPihcbiAgb3B0czogRmV0Y2hPcHRzPFQsIEE+XG4pIHtcbiAgcmV0dXJuIChzb3VyY2U6IEFjdGlvblN0YXRlc1N0cmVhbTxULCBBPik6IE9ic2VydmFibGU8QWN0aW9uPiA9PiB7XG4gICAgaWYgKG9wdHMuaWQpIHtcbiAgICAgIGNvbnN0IGdyb3VwZWRGZXRjaGVzID0gc291cmNlLnBpcGUoXG4gICAgICAgIG1hcEFjdGlvbkFuZFN0YXRlKCksXG4gICAgICAgIGdyb3VwQnkoKFthY3Rpb24sIC4uLnN0b3JlXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBvcHRzLmlkKGFjdGlvbiwgLi4uc3RvcmUpO1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGdyb3VwZWRGZXRjaGVzLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChwYWlycykgPT5cbiAgICAgICAgICBwYWlycy5waXBlKHN3aXRjaE1hcChydW5XaXRoRXJyb3JIYW5kbGluZyhvcHRzLnJ1biwgb3B0cy5vbkVycm9yKSkpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgbWFwQWN0aW9uQW5kU3RhdGUoKSxcbiAgICAgIGNvbmNhdE1hcChydW5XaXRoRXJyb3JIYW5kbGluZyhvcHRzLnJ1biwgb3B0cy5vbkVycm9yKSlcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEB3aGF0SXREb2VzIEhhbmRsZXMgZGF0YSBmZXRjaGluZyBhcyBwYXJ0IG9mIHJvdXRlciBuYXZpZ2F0aW9uLlxuICpcbiAqIERhdGEgZmV0Y2hpbmcgaW1wbGVtZW50ZWQgbmFpdmVseSBzdWZmZXJzIGZyb20gcmFjZSBjb25kaXRpb25zIGFuZCBwb29yIGVycm9yIGhhbmRsaW5nLlxuICpcbiAqIGBuYXZpZ2F0aW9uYCBhZGRyZXNzZXMgdGhlc2UgcHJvYmxlbXMuXG4gKlxuICogSXQgY2hlY2tzIGlmIGFuIGFjdGl2YXRlZCByb3V0ZXIgc3RhdGUgY29udGFpbnMgdGhlIHBhc3NlZCBpbiBjb21wb25lbnQgdHlwZSwgYW5kLCBpZiBpdCBkb2VzLCBydW5zIHRoZSBgcnVuYFxuICogY2FsbGJhY2suIEl0IHByb3ZpZGVzIHRoZSBhY3RpdmF0ZWQgc25hcHNob3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb21wb25lbnQgYW5kIHRoZSBjdXJyZW50IHN0YXRlLiBBbmQgaXQgb25seSBydW5zXG4gKiB0aGUgbGFzdCByZXF1ZXN0LlxuICpcbiAqICMjIEV4YW1wbGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogQEluamVjdGFibGUoKVxuICogY2xhc3MgVG9kb0VmZmVjdHMge1xuICogICBsb2FkVG9kbyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAqICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gKiAgICAgICAvLyBsaXN0ZW5zIGZvciB0aGUgcm91dGVyTmF2aWdhdGlvbiBhY3Rpb24gZnJvbSBAbmdyeC9yb3V0ZXItc3RvcmVcbiAqICAgICAgIG5hdmlnYXRpb24oVG9kb0NvbXBvbmVudCwge1xuICogICAgICAgICBydW46IChhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSA9PiB7XG4gKiAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICogICAgICAgICAgICAgLmZldGNoVG9kbyhhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LnBhcmFtc1snaWQnXSlcbiAqICAgICAgICAgICAgIC5waXBlKFxuICogICAgICAgICAgICAgICBtYXAoKHRvZG8pID0+ICh7XG4gKiAgICAgICAgICAgICAgICAgdHlwZTogJ0xPQURfVE9ET19TVUNDRVNTJyxcbiAqICAgICAgICAgICAgICAgICB0b2RvOiB0b2RvLFxuICogICAgICAgICAgICAgICB9KSlcbiAqICAgICAgICAgICAgICk7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIG9uRXJyb3I6IChcbiAqICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICogICAgICAgICAgIGVycm9yOiBhbnlcbiAqICAgICAgICAgKSA9PiB7XG4gKiAgICAgICAgICAgLy8gd2UgY2FuIGxvZyBhbmQgZXJyb3IgaGVyZSBhbmQgcmV0dXJuIG51bGxcbiAqICAgICAgICAgICAvLyB3ZSBjYW4gYWxzbyBuYXZpZ2F0ZSBiYWNrXG4gKiAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICB9KVxuICogICAgIClcbiAqICAgKTtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgYmFja2VuZDogQmFja2VuZCkge31cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRcbiAqIEBwYXJhbSBvcHRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYXZpZ2F0aW9uPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPiwgQSBleHRlbmRzIEFjdGlvbj4oXG4gIGNvbXBvbmVudDogVHlwZTxhbnk+LFxuICBvcHRzOiBIYW5kbGVOYXZpZ2F0aW9uT3B0czxUPlxuKSB7XG4gIHJldHVybiAoc291cmNlOiBBY3Rpb25TdGF0ZXNTdHJlYW08VCwgQT4pID0+IHtcbiAgICBjb25zdCBuYXYgPSBzb3VyY2UucGlwZShcbiAgICAgIG1hcEFjdGlvbkFuZFN0YXRlKCksXG4gICAgICBmaWx0ZXIoKFthY3Rpb25dKSA9PiBpc1N0YXRlU25hcHNob3QoYWN0aW9uKSksXG4gICAgICBtYXAoKFthY3Rpb24sIC4uLnNsaWNlc10pID0+IHtcbiAgICAgICAgaWYgKCFpc1N0YXRlU25hcHNob3QoYWN0aW9uKSkge1xuICAgICAgICAgIC8vIEJlY2F1c2Ugb2YgdGhlIGFib3ZlIGZpbHRlciB3ZSdsbCBuZXZlciBnZXQgaGVyZSxcbiAgICAgICAgICAvLyBidXQgdGhpcyBwcm9wZXJseSB0eXBlIG5hcnJvd3MgYGFjdGlvbmBcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIGZpbmRTbmFwc2hvdChjb21wb25lbnQsIGFjdGlvbi5wYXlsb2FkLnJvdXRlclN0YXRlLnJvb3QpLFxuICAgICAgICAgIC4uLnNsaWNlcyxcbiAgICAgICAgXSBhcyBbQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgLi4uVF07XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcigoW3NuYXBzaG90XSkgPT4gISFzbmFwc2hvdClcbiAgICApO1xuXG4gICAgcmV0dXJuIG5hdi5waXBlKHN3aXRjaE1hcChydW5XaXRoRXJyb3JIYW5kbGluZyhvcHRzLnJ1biwgb3B0cy5vbkVycm9yKSkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpc1N0YXRlU25hcHNob3QoXG4gIGFjdGlvbjogYW55XG4pOiBhY3Rpb24gaXMgUm91dGVyTmF2aWdhdGlvbkFjdGlvbjxSb3V0ZXJTdGF0ZVNuYXBzaG90PiB7XG4gIHJldHVybiBhY3Rpb24udHlwZSA9PT0gUk9VVEVSX05BVklHQVRJT047XG59XG5cbmZ1bmN0aW9uIHJ1bldpdGhFcnJvckhhbmRsaW5nPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPiwgQSwgUj4oXG4gIHJ1bjogKGE6IEEsIC4uLnNsaWNlczogWy4uLlRdKSA9PiBPYnNlcnZhYmxlPFI+IHwgUiB8IHZvaWQsXG4gIG9uRXJyb3I6IGFueVxuKSB7XG4gIHJldHVybiAoW2FjdGlvbiwgLi4uc2xpY2VzXTogW0EsIC4uLlRdKTogT2JzZXJ2YWJsZTxSPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHIgPSB3cmFwSW50b09ic2VydmFibGUocnVuKGFjdGlvbiwgLi4uc2xpY2VzKSk7XG4gICAgICByZXR1cm4gci5waXBlKGNhdGNoRXJyb3IoKGUpID0+IHdyYXBJbnRvT2JzZXJ2YWJsZShvbkVycm9yKGFjdGlvbiwgZSkpKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHdyYXBJbnRvT2JzZXJ2YWJsZShvbkVycm9yKGFjdGlvbiwgZSkpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBAd2hhdEl0RG9lcyBtYXBzIE9ic2VydmFibGU8QWN0aW9uIHwgW0FjdGlvbiwgU3RhdGVdPiB0b1xuICogT2JzZXJ2YWJsZTxbQWN0aW9uLCBTdGF0ZV0+XG4gKi9cbmZ1bmN0aW9uIG1hcEFjdGlvbkFuZFN0YXRlPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPiwgQT4oKSB7XG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPEFjdGlvbk9yQWN0aW9uV2l0aFN0YXRlczxULCBBPj4pID0+IHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoXG4gICAgICBtYXAoKHZhbHVlKSA9PiBub3JtYWxpemVBY3Rpb25BbmRTdGF0ZSh2YWx1ZSkgYXMgW0EsIC4uLlRdKVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQHdoYXRJdERvZXMgTm9ybWFsaXplcyBlaXRoZXIgYSBiYXJlIGFjdGlvbiBvciBhbiBhcnJheSBvZiBhY3Rpb24gYW5kIHNsaWNlc1xuICogaW50byBhbiBhcnJheSBvZiBhY3Rpb24gYW5kIHNsaWNlcyAob3IgdW5kZWZpbmVkKVxuICovXG5mdW5jdGlvbiBub3JtYWxpemVBY3Rpb25BbmRTdGF0ZTxUIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIEE+KFxuICBhcmdzOiBBY3Rpb25PckFjdGlvbldpdGhTdGF0ZXM8VCwgQT5cbik6IFtBLCAuLi5UXSB7XG4gIGxldCBhY3Rpb246IEEsIHNsaWNlczogVDtcblxuICBpZiAoYXJncyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgW2FjdGlvbiwgLi4uc2xpY2VzXSA9IGFyZ3M7XG4gIH0gZWxzZSB7XG4gICAgc2xpY2VzID0gW10gYXMgVDtcbiAgICBhY3Rpb24gPSBhcmdzO1xuICB9XG5cbiAgcmV0dXJuIFthY3Rpb24sIC4uLnNsaWNlc107XG59XG5cbi8qKlxuICogQHdoYXRJdERvZXMgUHJvdmlkZXMgY29udmVuaWVuY2UgbWV0aG9kcyBmb3IgaW1wbGVtZW50aW5nIGNvbW1vbiBvcGVyYXRpb25zIG9mIHBlcnNpc3RpbmcgZGF0YS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGhlIGluZGl2aWR1YWwgb3BlcmF0b3JzIGluc3RlYWQuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2MTUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhUGVyc2lzdGVuY2U8VD4ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RvcmU6IFN0b3JlPFQ+LCBwdWJsaWMgYWN0aW9uczogQWN0aW9ucykge31cblxuICAvKipcbiAgICogU2VlIHtAbGluayBwZXNzaW1pc3RpY1VwZGF0ZX0gb3BlcmF0b3IgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB0aGUge0BsaW5rIHBlc3NpbWlzdGljVXBkYXRlfSBvcGVyYXRvciBpbnN0ZWFkLlxuICAgKiBUaGUge0BsaW5rIERhdGFQZXJzaXN0ZW5jZX0gY2xhc3Mgd2lsbCBiZSByZW1vdmVkIGluIHYxNS5cbiAgICovXG4gIHBlc3NpbWlzdGljVXBkYXRlPEEgZXh0ZW5kcyBBY3Rpb24gPSBBY3Rpb24+KFxuICAgIGFjdGlvblR5cGU6IHN0cmluZyB8IEFjdGlvbkNyZWF0b3IsXG4gICAgb3B0czogUGVzc2ltaXN0aWNVcGRhdGVPcHRzPFtUXSwgQT5cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zLnBpcGUoXG4gICAgICBvZlR5cGU8QT4oYWN0aW9uVHlwZSksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlKSxcbiAgICAgIHBlc3NpbWlzdGljVXBkYXRlKG9wdHMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWUge0BsaW5rIG9wdGltaXN0aWNVcGRhdGV9IG9wZXJhdG9yIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgdGhlIHtAbGluayBvcHRpbWlzdGljVXBkYXRlfSBvcGVyYXRvciBpbnN0ZWFkLlxuICAgKiBUaGUge0BsaW5rIERhdGFQZXJzaXN0ZW5jZX0gY2xhc3Mgd2lsbCBiZSByZW1vdmVkIGluIHYxNS5cbiAgICovXG4gIG9wdGltaXN0aWNVcGRhdGU8QSBleHRlbmRzIEFjdGlvbiA9IEFjdGlvbj4oXG4gICAgYWN0aW9uVHlwZTogc3RyaW5nIHwgQWN0aW9uQ3JlYXRvcixcbiAgICBvcHRzOiBPcHRpbWlzdGljVXBkYXRlT3B0czxbVF0sIEE+XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucy5waXBlKFxuICAgICAgb2ZUeXBlPEE+KGFjdGlvblR5cGUpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZSksXG4gICAgICBvcHRpbWlzdGljVXBkYXRlKG9wdHMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWUge0BsaW5rIGZldGNofSBvcGVyYXRvciBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRoZSB7QGxpbmsgZmV0Y2h9IG9wZXJhdG9yIGluc3RlYWQuXG4gICAqIFRoZSB7QGxpbmsgRGF0YVBlcnNpc3RlbmNlfSBjbGFzcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjE1LlxuICAgKi9cbiAgZmV0Y2g8QSBleHRlbmRzIEFjdGlvbiA9IEFjdGlvbj4oXG4gICAgYWN0aW9uVHlwZTogc3RyaW5nIHwgQWN0aW9uQ3JlYXRvcixcbiAgICBvcHRzOiBGZXRjaE9wdHM8W1RdLCBBPlxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMucGlwZShcbiAgICAgIG9mVHlwZTxBPihhY3Rpb25UeXBlKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUpLFxuICAgICAgZmV0Y2gob3B0cylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZSB7QGxpbmsgbmF2aWdhdGlvbn0gb3BlcmF0b3IgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB0aGUge0BsaW5rIG5hdmlnYXRpb259IG9wZXJhdG9yIGluc3RlYWQuXG4gICAqIFRoZSB7QGxpbmsgRGF0YVBlcnNpc3RlbmNlfSBjbGFzcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjE1LlxuICAgKi9cbiAgbmF2aWdhdGlvbihcbiAgICBjb21wb25lbnQ6IFR5cGU8YW55PixcbiAgICBvcHRzOiBIYW5kbGVOYXZpZ2F0aW9uT3B0czxbVF0+XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucy5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZSksXG4gICAgICBuYXZpZ2F0aW9uKGNvbXBvbmVudCwgb3B0cylcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRTbmFwc2hvdChcbiAgY29tcG9uZW50OiBUeXBlPGFueT4sXG4gIHM6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Rcbik6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Qge1xuICBpZiAocy5yb3V0ZUNvbmZpZyAmJiBzLnJvdXRlQ29uZmlnLmNvbXBvbmVudCA9PT0gY29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHM7XG4gIH1cbiAgZm9yIChjb25zdCBjIG9mIHMuY2hpbGRyZW4pIHtcbiAgICBjb25zdCBzcyA9IGZpbmRTbmFwc2hvdChjb21wb25lbnQsIGMpO1xuICAgIGlmIChzcykge1xuICAgICAgcmV0dXJuIHNzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gd3JhcEludG9PYnNlcnZhYmxlPE8+KG9iajogT2JzZXJ2YWJsZTxPPiB8IE8gfCB2b2lkKTogT2JzZXJ2YWJsZTxPPiB7XG4gIGlmIChpc09ic2VydmFibGUob2JqKSkge1xuICAgIHJldHVybiBvYmo7XG4gIH0gZWxzZSBpZiAoIW9iaikge1xuICAgIHJldHVybiBvZigpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvZihvYmogYXMgTyk7XG4gIH1cbn1cbiJdfQ==
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wZXJzaXN0ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ydW50aW1lL254L2RhdGEtcGVyc2lzdGVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE9BQU8sRUFDUCxHQUFHLEVBQ0gsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBcUN4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3REc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQWlDO0lBRWpDLE9BQU8sQ0FBQyxNQUFnQyxFQUFzQixFQUFFO1FBQzlELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDaEIsaUJBQWlCLEVBQUUsRUFDbkIsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3hELENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlERztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsSUFBZ0M7SUFFaEMsT0FBTyxDQUFDLE1BQWdDLEVBQXNCLEVBQUU7UUFDOUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixpQkFBaUIsRUFBRSxFQUNuQixTQUFTLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDM0QsQ0FBQztJQUNKLENB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LElBQUksRUFBRSxFQUFFO1lBQ04sT0FBTyxFQUFFLENBQUM7U0FDWDtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBSSxHQUE2QjtJQUMxRCxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNyQixPQUFPLEdBQUcsQ0FBQztLQUNaO1NBQU0sSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNmLE9BQU8sRUFBRSxFQUFFLENBQUM7S0FDYjtTQUFNO1FBQ0wsT0FBTyxFQUFFLENBQUMsR0FBUSxDQUFDLENBQUM7S0FDckI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgdHlwZSB7IFJvdXRlck5hdmlnYXRpb25BY3Rpb24gfSBmcm9tICdAbmdyeC9yb3V0ZXItc3RvcmUnO1xuaW1wb3J0IHsgUk9VVEVSX05BVklHQVRJT04gfSBmcm9tICdAbmdyeC9yb3V0ZXItc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGNvbmNhdE1hcCxcbiAgZmlsdGVyLFxuICBncm91cEJ5LFxuICBtYXAsXG4gIG1lcmdlTWFwLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBQZXNzaW1pc3RpY1VwZGF0ZU9wdHM8VCBleHRlbmRzIEFycmF5PHVua25vd24+LCBBPiB7XG4gIHJ1bihhOiBBLCAuLi5zbGljZXM6IFsuLi5UXSk6IE9ic2VydmFibGU8QWN0aW9uPiB8IEFjdGlvbiB8IHZvaWQ7XG4gIG9uRXJyb3IoYTogQSwgZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHwgYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGltaXN0aWNVcGRhdGVPcHRzPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPiwgQT4ge1xuICBydW4oYTogQSwgLi4uc2xpY2VzOiBbLi4uVF0pOiBPYnNlcnZhYmxlPEFjdGlvbj4gfCBBY3Rpb24gfCB2b2lkO1xuICB1bmRvQWN0aW9uKGE6IEEsIGU6IGFueSk6IE9ic2VydmFibGU8QWN0aW9uPiB8IEFjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaE9wdHM8VCBleHRlbmRzIEFycmF5PHVua25vd24+LCBBPiB7XG4gIGlkPyhhOiBBLCAuLi5zbGljZXM6IFsuLi5UXSk6IGFueTtcbiAgcnVuKGE6IEEsIC4uLnNsaWNlczogWy4uLlRdKTogT2JzZXJ2YWJsZTxBY3Rpb24+IHwgQWN0aW9uIHwgdm9pZDtcbiAgb25FcnJvcj8oYTogQSwgZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHwgYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZU5hdmlnYXRpb25PcHRzPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPj4ge1xuICBydW4oXG4gICAgYTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICAuLi5zbGljZXM6IFsuLi5UXVxuICApOiBPYnNlcnZhYmxlPEFjdGlvbj4gfCBBY3Rpb24gfCB2b2lkO1xuICBvbkVycm9yPyhhOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4gfCBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvbk9yQWN0aW9uV2l0aFN0YXRlczxUIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIEE+ID1cbiAgfCBBXG4gIHwgW0EsIC4uLlRdO1xuZXhwb3J0IHR5cGUgQWN0aW9uT3JBY3Rpb25XaXRoU3RhdGU8VCwgQT4gPSBBY3Rpb25PckFjdGlvbldpdGhTdGF0ZXM8W1RdLCBBPjtcbmV4cG9ydCB0eXBlIEFjdGlvblN0YXRlc1N0cmVhbTxUIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIEE+ID0gT2JzZXJ2YWJsZTxcbiAgQWN0aW9uT3JBY3Rpb25XaXRoU3RhdGVzPFQsIEE+XG4+O1xuZXhwb3J0IHR5cGUgQWN0aW9uU3RhdGVTdHJlYW08VCwgQT4gPSBPYnNlcnZhYmxlPFxuICBBY3Rpb25PckFjdGlvbldpdGhTdGF0ZXM8W1RdLCBBPlxuPjtcblxuLyoqXG4gKlxuICogQHdoYXRJdERvZXMgSGFuZGxlcyBwZXNzaW1pc3RpYyB1cGRhdGVzICh1cGRhdGluZyB0aGUgc2VydmVyIGZpcnN0KS5cbiAqXG4gKiBVcGRhdGluZyB0aGUgc2VydmVyLCB3aGVuIGltcGxlbWVudGVkIG5haXZlbHksIHN1ZmZlcnMgZnJvbSByYWNlIGNvbmRpdGlvbnMgYW5kIHBvb3IgZXJyb3IgaGFuZGxpbmcuXG4gKlxuICogYHBlc3NpbWlzdGljVXBkYXRlYCBhZGRyZXNzZXMgdGhlc2UgcHJvYmxlbXMuIEl0IHJ1bnMgYWxsIGZldGNoZXMgaW4gb3JkZXIsIHdoaWNoIHJlbW92ZXMgcmFjZSBjb25kaXRpb25zXG4gKiBhbmQgZm9yY2VzIHRoZSBkZXZlbG9wZXIgdG8gaGFuZGxlIGVycm9ycy5cbiAqXG4gKiAjIyBFeGFtcGxlOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIEBJbmplY3RhYmxlKClcbiAqIGNsYXNzIFRvZG9FZmZlY3RzIHtcbiAqICAgdXBkYXRlVG9kbyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAqICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gKiAgICAgICBvZlR5cGUoJ1VQREFURV9UT0RPJyksXG4gKiAgICAgICBwZXNzaW1pc3RpY1VwZGF0ZSh7XG4gKiAgICAgICAgIC8vIHByb3ZpZGVzIGFuIGFjdGlvblxuICogICAgICAgICBydW46IChhY3Rpb246IFVwZGF0ZVRvZG8pID0+IHtcbiAqICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGJhY2tlbmQgZmlyc3QsIGFuZCB0aGVuIGRpc3BhdGNoIGFuIGFjdGlvbiB0aGF0IHdpbGxcbiAqICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGNsaWVudCBzaWRlXG4gKiAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC51cGRhdGVUb2RvKGFjdGlvbi50b2RvLmlkLCBhY3Rpb24udG9kbykucGlwZShcbiAqICAgICAgICAgICAgIG1hcCgodXBkYXRlZCkgPT4gKHtcbiAqICAgICAgICAgICAgICAgdHlwZTogJ1VQREFURV9UT0RPX1NVQ0NFU1MnLFxuICogICAgICAgICAgICAgICB0b2RvOiB1cGRhdGVkLFxuICogICAgICAgICAgICAgfSkpXG4gKiAgICAgICAgICAgKTtcbiAqICAgICAgICAgfSxcbiAqICAgICAgICAgb25FcnJvcjogKGFjdGlvbjogVXBkYXRlVG9kbywgZXJyb3I6IGFueSkgPT4ge1xuICogICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gdW5kbyB0aGUgY2hhbmdlcyBvbiB0aGUgY2xpZW50IHNpZGUuXG4gKiAgICAgICAgICAgLy8gd2UgY2FuIGRpc3BhdGNoIGFuIGVycm9yLCBvciBzaW1wbHkgbG9nIHRoZSBlcnJvciBoZXJlIGFuZCByZXR1cm4gYG51bGxgXG4gKiAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICB9KVxuICogICAgIClcbiAqICAgKTtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgYmFja2VuZDogQmFja2VuZCkge31cbiAqIH1cbiAqIGBgYFxuICpcbiAqIE5vdGUgdGhhdCBpZiB5b3UgZG9uJ3QgcmV0dXJuIGEgbmV3IGFjdGlvbiBmcm9tIHRoZSBydW4gY2FsbGJhY2ssIHlvdSBtdXN0IHNldCB0aGUgZGlzcGF0Y2ggcHJvcGVydHlcbiAqIG9mIHRoZSBlZmZlY3QgdG8gZmFsc2UsIGxpa2UgdGhpczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBUb2RvRWZmZWN0cyB7XG4gKiAgIHVwZGF0ZVRvZG8kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gKiAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICogICAgICAgLy8uLi5cbiAqICAgICApLCB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGVzc2ltaXN0aWNVcGRhdGU8VCBleHRlbmRzIEFycmF5PHVua25vd24+LCBBIGV4dGVuZHMgQWN0aW9uPihcbiAgb3B0czogUGVzc2ltaXN0aWNVcGRhdGVPcHRzPFQsIEE+XG4pIHtcbiAgcmV0dXJuIChzb3VyY2U6IEFjdGlvblN0YXRlc1N0cmVhbTxULCBBPik6IE9ic2VydmFibGU8QWN0aW9uPiA9PiB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgbWFwQWN0aW9uQW5kU3RhdGUoKSxcbiAgICAgIGNvbmNhdE1hcChydW5XaXRoRXJyb3JIYW5kbGluZyhvcHRzLnJ1biwgb3B0cy5vbkVycm9yKSlcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqXG4gKiBAd2hhdEl0RG9lcyBIYW5kbGVzIG9wdGltaXN0aWMgdXBkYXRlcyAodXBkYXRpbmcgdGhlIGNsaWVudCBmaXJzdCkuXG4gKlxuICogSXQgcnVucyBhbGwgZmV0Y2hlcyBpbiBvcmRlciwgd2hpY2ggcmVtb3ZlcyByYWNlIGNvbmRpdGlvbnMgYW5kIGZvcmNlcyB0aGUgZGV2ZWxvcGVyIHRvIGhhbmRsZSBlcnJvcnMuXG4gKlxuICogV2hlbiB1c2luZyBgb3B0aW1pc3RpY1VwZGF0ZWAsIGluIGNhc2Ugb2YgYSBmYWlsdXJlLCB0aGUgZGV2ZWxvcGVyIGhhcyBhbHJlYWR5IHVwZGF0ZWQgdGhlIHN0YXRlIGxvY2FsbHksXG4gKiBzbyB0aGUgZGV2ZWxvcGVyIG11c3QgcHJvdmlkZSBhbiB1bmRvIGFjdGlvbi5cbiAqXG4gKiBUaGUgZXJyb3IgaGFuZGxpbmcgbXVzdCBiZSBkb25lIGluIHRoZSBjYWxsYmFjaywgb3IgYnkgbWVhbnMgb2YgdGhlIHVuZG8gYWN0aW9uLlxuICpcbiAqICMjIEV4YW1wbGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogQEluamVjdGFibGUoKVxuICogY2xhc3MgVG9kb0VmZmVjdHMge1xuICogICB1cGRhdGVUb2RvJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICogICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAqICAgICAgIG9mVHlwZSgnVVBEQVRFX1RPRE8nKSxcbiAqICAgICAgIG9wdGltaXN0aWNVcGRhdGUoe1xuICogICAgICAgICAvLyBwcm92aWRlcyBhbiBhY3Rpb25cbiAqICAgICAgICAgcnVuOiAoYWN0aW9uOiBVcGRhdGVUb2RvKSA9PiB7XG4gKiAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC51cGRhdGVUb2RvKGFjdGlvbi50b2RvLmlkLCBhY3Rpb24udG9kbykucGlwZShcbiAqICAgICAgICAgICAgIG1hcFRvKHtcbiAqICAgICAgICAgICAgICAgdHlwZTogJ1VQREFURV9UT0RPX1NVQ0NFU1MnLFxuICogICAgICAgICAgICAgfSlcbiAqICAgICAgICAgICApO1xuICogICAgICAgICB9LFxuICogICAgICAgICB1bmRvQWN0aW9uOiAoYWN0aW9uOiBVcGRhdGVUb2RvLCBlcnJvcjogYW55KSA9PiB7XG4gKiAgICAgICAgICAgLy8gZGlzcGF0Y2ggYW4gdW5kbyBhY3Rpb24gdG8gdW5kbyB0aGUgY2hhbmdlcyBpbiB0aGUgY2xpZW50IHN0YXRlXG4gKiAgICAgICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAgICAgIHR5cGU6ICdVTkRPX1RPRE9fVVBEQVRFJyxcbiAqICAgICAgICAgICAgIHRvZG86IGFjdGlvbi50b2RvLFxuICogICAgICAgICAgIH07XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICB9KVxuICogICAgIClcbiAqICAgKTtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgYmFja2VuZDogQmFja2VuZCkge31cbiAqIH1cbiAqIGBgYFxuICpcbiAqIE5vdGUgdGhhdCBpZiB5b3UgZG9uJ3QgcmV0dXJuIGEgbmV3IGFjdGlvbiBmcm9tIHRoZSBydW4gY2FsbGJhY2ssIHlvdSBtdXN0IHNldCB0aGUgZGlzcGF0Y2ggcHJvcGVydHlcbiAqIG9mIHRoZSBlZmZlY3QgdG8gZmFsc2UsIGxpa2UgdGhpczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBUb2RvRWZmZWN0cyB7XG4gKiAgIHVwZGF0ZVRvZG8kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gKiAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICogICAgICAgLy8uLi5cbiAqICAgICApLCB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gb3B0aW1pc3RpY1VwZGF0ZTxUIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIEEgZXh0ZW5kcyBBY3Rpb24+KFxuICBvcHRzOiBPcHRpbWlzdGljVXBkYXRlT3B0czxULCBBPlxuKSB7XG4gIHJldHVybiAoc291cmNlOiBBY3Rpb25TdGF0ZXNTdHJlYW08VCwgQT4pOiBPYnNlcnZhYmxlPEFjdGlvbj4gPT4ge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShcbiAgICAgIG1hcEFjdGlvbkFuZFN0YXRlKCksXG4gICAgICBjb25jYXRNYXAocnVuV2l0aEVycm9ySGFuZGxpbmcob3B0cy5ydW4sIG9wdHMudW5kb0FjdGlvbikpXG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKlxuICogQHdoYXRJdERvZXMgSGFuZGxlcyBkYXRhIGZldGNoaW5nLlxuICpcbiAqIERhdGEgZmV0Y2hpbmcgaW1wbGVtZW50ZWQgbmFpdmVseSBzdWZmZXJzIGZyb20gcmFjZSBjb25kaXRpb25zIGFuZCBwb29yIGVycm9yIGhhbmRsaW5nLlxuICpcbiAqIGBmZXRjaGAgYWRkcmVzc2VzIHRoZXNlIHByb2JsZW1zLiBJdCBydW5zIGFsbCBmZXRjaGVzIGluIG9yZGVyLCB3aGljaCByZW1vdmVzIHJhY2UgY29uZGl0aW9uc1xuICogYW5kIGZvcmNlcyB0aGUgZGV2ZWxvcGVyIHRvIGhhbmRsZSBlcnJvcnMuXG4gKlxuICogIyMgRXhhbXBsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSgpXG4gKiBjbGFzcyBUb2RvRWZmZWN0cyB7XG4gKiAgIGxvYWRUb2RvcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAqICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gKiAgICAgICBvZlR5cGUoJ0dFVF9UT0RPUycpLFxuICogICAgICAgZmV0Y2goe1xuICogICAgICAgICAvLyBwcm92aWRlcyBhbiBhY3Rpb25cbiAqICAgICAgICAgcnVuOiAoYTogR2V0VG9kb3MpID0+IHtcbiAqICAgICAgICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEFsbCgpLnBpcGUoXG4gKiAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiAoe1xuICogICAgICAgICAgICAgICB0eXBlOiAnVE9ET1MnLFxuICogICAgICAgICAgICAgICB0b2RvczogcmVzcG9uc2UudG9kb3MsXG4gKiAgICAgICAgICAgICB9KSlcbiAqICAgICAgICAgICApO1xuICogICAgICAgICB9LFxuICogICAgICAgICBvbkVycm9yOiAoYWN0aW9uOiBHZXRUb2RvcywgZXJyb3I6IGFueSkgPT4ge1xuICogICAgICAgICAgIC8vIGRpc3BhdGNoIGFuIHVuZG8gYWN0aW9uIHRvIHVuZG8gdGhlIGNoYW5nZXMgaW4gdGhlIGNsaWVudCBzdGF0ZVxuICogICAgICAgICAgIHJldHVybiBudWxsO1xuICogICAgICAgICB9LFxuICogICAgICAgfSlcbiAqICAgICApXG4gKiAgICk7XG4gKlxuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmQpIHt9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBUaGlzIGlzIGNvcnJlY3QsIGJ1dCBiZWNhdXNlIGl0IHNldCB0aGUgY29uY3VycmVuY3kgdG8gMSwgaXQgbWF5IG5vdCBiZSBwZXJmb3JtYW50LlxuICpcbiAqIFRvIGZpeCB0aGF0LCB5b3UgY2FuIHByb3ZpZGUgdGhlIGBpZGAgZnVuY3Rpb24sIGxpa2UgdGhpczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSgpXG4gKiBjbGFzcyBUb2RvRWZmZWN0cyB7XG4gKiAgIGxvYWRUb2RvJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICogICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAqICAgICAgIG9mVHlwZSgnR0VUX1RPRE8nKSxcbiAqICAgICAgIGZldGNoKHtcbiAqICAgICAgICAgaWQ6ICh0b2RvOiBHZXRUb2RvKSA9PiB7XG4gKiAgICAgICAgICAgcmV0dXJuIHRvZG8uaWQ7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIC8vIHByb3ZpZGVzIGFuIGFjdGlvblxuICogICAgICAgICBydW46ICh0b2RvOiBHZXRUb2RvKSA9PiB7XG4gKiAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRUb2RvKHRvZG8uaWQpLm1hcCgocmVzcG9uc2UpID0+ICh7XG4gKiAgICAgICAgICAgICB0eXBlOiAnTE9BRF9UT0RPX1NVQ0NFU1MnLFxuICogICAgICAgICAgICAgdG9kbzogcmVzcG9uc2UudG9kbyxcbiAqICAgICAgICAgICB9KSk7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIG9uRXJyb3I6IChhY3Rpb246IEdldFRvZG8sIGVycm9yOiBhbnkpID0+IHtcbiAqICAgICAgICAgICAvLyBkaXNwYXRjaCBhbiB1bmRvIGFjdGlvbiB0byB1bmRvIHRoZSBjaGFuZ2VzIGluIHRoZSBjbGllbnQgc3RhdGVcbiAqICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAqICAgICAgICAgfSxcbiAqICAgICAgIH0pXG4gKiAgICAgKVxuICogICApO1xuICpcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucywgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kKSB7fVxuICogfVxuICogYGBgXG4gKlxuICogV2l0aCB0aGlzIHNldHVwLCB0aGUgcmVxdWVzdHMgZm9yIFRvZG8gMSB3aWxsIHJ1biBjb25jdXJyZW50bHkgd2l0aCB0aGUgcmVxdWVzdHMgZm9yIFRvZG8gMi5cbiAqXG4gKiBJbiBhZGRpdGlvbiwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIHJlcXVlc3RzIGZvciBUb2RvIDEgc2NoZWR1bGVkLCBpdCB3aWxsIG9ubHkgcnVuIHRoZSBsYXN0IG9uZS5cbiAqXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2g8VCBleHRlbmRzIEFycmF5PHVua25vd24+LCBBIGV4dGVuZHMgQWN0aW9uPihcbiAgb3B0czogRmV0Y2hPcHRzPFQsIEE+XG4pIHtcbiAgcmV0dXJuIChzb3VyY2U6IEFjdGlvblN0YXRlc1N0cmVhbTxULCBBPik6IE9ic2VydmFibGU8QWN0aW9uPiA9PiB7XG4gICAgaWYgKG9wdHMuaWQpIHtcbiAgICAgIGNvbnN0IGdyb3VwZWRGZXRjaGVzID0gc291cmNlLnBpcGUoXG4gICAgICAgIG1hcEFjdGlvbkFuZFN0YXRlKCksXG4gICAgICAgIGdyb3VwQnkoKFthY3Rpb24sIC4uLnN0b3JlXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBvcHRzLmlkKGFjdGlvbiwgLi4uc3RvcmUpO1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGdyb3VwZWRGZXRjaGVzLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChwYWlycykgPT5cbiAgICAgICAgICBwYWlycy5waXBlKHN3aXRjaE1hcChydW5XaXRoRXJyb3JIYW5kbGluZyhvcHRzLnJ1biwgb3B0cy5vbkVycm9yKSkpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgbWFwQWN0aW9uQW5kU3RhdGUoKSxcbiAgICAgIGNvbmNhdE1hcChydW5XaXRoRXJyb3JIYW5kbGluZyhvcHRzLnJ1biwgb3B0cy5vbkVycm9yKSlcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEB3aGF0SXREb2VzIEhhbmRsZXMgZGF0YSBmZXRjaGluZyBhcyBwYXJ0IG9mIHJvdXRlciBuYXZpZ2F0aW9uLlxuICpcbiAqIERhdGEgZmV0Y2hpbmcgaW1wbGVtZW50ZWQgbmFpdmVseSBzdWZmZXJzIGZyb20gcmFjZSBjb25kaXRpb25zIGFuZCBwb29yIGVycm9yIGhhbmRsaW5nLlxuICpcbiAqIGBuYXZpZ2F0aW9uYCBhZGRyZXNzZXMgdGhlc2UgcHJvYmxlbXMuXG4gKlxuICogSXQgY2hlY2tzIGlmIGFuIGFjdGl2YXRlZCByb3V0ZXIgc3RhdGUgY29udGFpbnMgdGhlIHBhc3NlZCBpbiBjb21wb25lbnQgdHlwZSwgYW5kLCBpZiBpdCBkb2VzLCBydW5zIHRoZSBgcnVuYFxuICogY2FsbGJhY2suIEl0IHByb3ZpZGVzIHRoZSBhY3RpdmF0ZWQgc25hcHNob3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb21wb25lbnQgYW5kIHRoZSBjdXJyZW50IHN0YXRlLiBBbmQgaXQgb25seSBydW5zXG4gKiB0aGUgbGFzdCByZXF1ZXN0LlxuICpcbiAqICMjIEV4YW1wbGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogQEluamVjdGFibGUoKVxuICogY2xhc3MgVG9kb0VmZmVjdHMge1xuICogICBsb2FkVG9kbyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAqICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gKiAgICAgICAvLyBsaXN0ZW5zIGZvciB0aGUgcm91dGVyTmF2aWdhdGlvbiBhY3Rpb24gZnJvbSBAbmdyeC9yb3V0ZXItc3RvcmVcbiAqICAgICAgIG5hdmlnYXRpb24oVG9kb0NvbXBvbmVudCwge1xuICogICAgICAgICBydW46IChhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSA9PiB7XG4gKiAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICogICAgICAgICAgICAgLmZldGNoVG9kbyhhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LnBhcmFtc1snaWQnXSlcbiAqICAgICAgICAgICAgIC5waXBlKFxuICogICAgICAgICAgICAgICBtYXAoKHRvZG8pID0+ICh7XG4gKiAgICAgICAgICAgICAgICAgdHlwZTogJ0xPQURfVE9ET19TVUNDRVNTJyxcbiAqICAgICAgICAgICAgICAgICB0b2RvOiB0b2RvLFxuICogICAgICAgICAgICAgICB9KSlcbiAqICAgICAgICAgICAgICk7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIG9uRXJyb3I6IChcbiAqICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICogICAgICAgICAgIGVycm9yOiBhbnlcbiAqICAgICAgICAgKSA9PiB7XG4gKiAgICAgICAgICAgLy8gd2UgY2FuIGxvZyBhbmQgZXJyb3IgaGVyZSBhbmQgcmV0dXJuIG51bGxcbiAqICAgICAgICAgICAvLyB3ZSBjYW4gYWxzbyBuYXZpZ2F0ZSBiYWNrXG4gKiAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gKiAgICAgICAgIH0sXG4gKiAgICAgICB9KVxuICogICAgIClcbiAqICAgKTtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgYmFja2VuZDogQmFja2VuZCkge31cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRcbiAqIEBwYXJhbSBvcHRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYXZpZ2F0aW9uPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPiwgQSBleHRlbmRzIEFjdGlvbj4oXG4gIGNvbXBvbmVudDogVHlwZTxhbnk+LFxuICBvcHRzOiBIYW5kbGVOYXZpZ2F0aW9uT3B0czxUPlxuKSB7XG4gIHJldHVybiAoc291cmNlOiBBY3Rpb25TdGF0ZXNTdHJlYW08VCwgQT4pID0+IHtcbiAgICBjb25zdCBuYXYgPSBzb3VyY2UucGlwZShcbiAgICAgIG1hcEFjdGlvbkFuZFN0YXRlKCksXG4gICAgICBmaWx0ZXIoKFthY3Rpb25dKSA9PiBpc1N0YXRlU25hcHNob3QoYWN0aW9uKSksXG4gICAgICBtYXAoKFthY3Rpb24sIC4uLnNsaWNlc10pID0+IHtcbiAgICAgICAgaWYgKCFpc1N0YXRlU25hcHNob3QoYWN0aW9uKSkge1xuICAgICAgICAgIC8vIEJlY2F1c2Ugb2YgdGhlIGFib3ZlIGZpbHRlciB3ZSdsbCBuZXZlciBnZXQgaGVyZSxcbiAgICAgICAgICAvLyBidXQgdGhpcyBwcm9wZXJseSB0eXBlIG5hcnJvd3MgYGFjdGlvbmBcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIGZpbmRTbmFwc2hvdChjb21wb25lbnQsIGFjdGlvbi5wYXlsb2FkLnJvdXRlclN0YXRlLnJvb3QpLFxuICAgICAgICAgIC4uLnNsaWNlcyxcbiAgICAgICAgXSBhcyBbQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgLi4uVF07XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcigoW3NuYXBzaG90XSkgPT4gISFzbmFwc2hvdClcbiAgICApO1xuXG4gICAgcmV0dXJuIG5hdi5waXBlKHN3aXRjaE1hcChydW5XaXRoRXJyb3JIYW5kbGluZyhvcHRzLnJ1biwgb3B0cy5vbkVycm9yKSkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpc1N0YXRlU25hcHNob3QoXG4gIGFjdGlvbjogYW55XG4pOiBhY3Rpb24gaXMgUm91dGVyTmF2aWdhdGlvbkFjdGlvbjxSb3V0ZXJTdGF0ZVNuYXBzaG90PiB7XG4gIHJldHVybiBhY3Rpb24udHlwZSA9PT0gUk9VVEVSX05BVklHQVRJT047XG59XG5cbmZ1bmN0aW9uIHJ1bldpdGhFcnJvckhhbmRsaW5nPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPiwgQSwgUj4oXG4gIHJ1bjogKGE6IEEsIC4uLnNsaWNlczogWy4uLlRdKSA9PiBPYnNlcnZhYmxlPFI+IHwgUiB8IHZvaWQsXG4gIG9uRXJyb3I6IGFueVxuKSB7XG4gIHJldHVybiAoW2FjdGlvbiwgLi4uc2xpY2VzXTogW0EsIC4uLlRdKTogT2JzZXJ2YWJsZTxSPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHIgPSB3cmFwSW50b09ic2VydmFibGUocnVuKGFjdGlvbiwgLi4uc2xpY2VzKSk7XG4gICAgICByZXR1cm4gci5waXBlKGNhdGNoRXJyb3IoKGUpID0+IHdyYXBJbnRvT2JzZXJ2YWJsZShvbkVycm9yKGFjdGlvbiwgZSkpKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHdyYXBJbnRvT2JzZXJ2YWJsZShvbkVycm9yKGFjdGlvbiwgZSkpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBAd2hhdEl0RG9lcyBtYXBzIE9ic2VydmFibGU8QWN0aW9uIHwgW0FjdGlvbiwgU3RhdGVdPiB0b1xuICogT2JzZXJ2YWJsZTxbQWN0aW9uLCBTdGF0ZV0+XG4gKi9cbmZ1bmN0aW9uIG1hcEFjdGlvbkFuZFN0YXRlPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPiwgQT4oKSB7XG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPEFjdGlvbk9yQWN0aW9uV2l0aFN0YXRlczxULCBBPj4pID0+IHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoXG4gICAgICBtYXAoKHZhbHVlKSA9PiBub3JtYWxpemVBY3Rpb25BbmRTdGF0ZSh2YWx1ZSkgYXMgW0EsIC4uLlRdKVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQHdoYXRJdERvZXMgTm9ybWFsaXplcyBlaXRoZXIgYSBiYXJlIGFjdGlvbiBvciBhbiBhcnJheSBvZiBhY3Rpb24gYW5kIHNsaWNlc1xuICogaW50byBhbiBhcnJheSBvZiBhY3Rpb24gYW5kIHNsaWNlcyAob3IgdW5kZWZpbmVkKVxuICovXG5mdW5jdGlvbiBub3JtYWxpemVBY3Rpb25BbmRTdGF0ZTxUIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIEE+KFxuICBhcmdzOiBBY3Rpb25PckFjdGlvbldpdGhTdGF0ZXM8VCwgQT5cbik6IFtBLCAuLi5UXSB7XG4gIGxldCBhY3Rpb246IEEsIHNsaWNlczogVDtcblxuICBpZiAoYXJncyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgW2FjdGlvbiwgLi4uc2xpY2VzXSA9IGFyZ3M7XG4gIH0gZWxzZSB7XG4gICAgc2xpY2VzID0gW10gYXMgVDtcbiAgICBhY3Rpb24gPSBhcmdzO1xuICB9XG5cbiAgcmV0dXJuIFthY3Rpb24sIC4uLnNsaWNlc107XG59XG5cbmZ1bmN0aW9uIGZpbmRTbmFwc2hvdChcbiAgY29tcG9uZW50OiBUeXBlPGFueT4sXG4gIHM6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Rcbik6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Qge1xuICBpZiAocy5yb3V0ZUNvbmZpZyAmJiBzLnJvdXRlQ29uZmlnLmNvbXBvbmVudCA9PT0gY29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHM7XG4gIH1cbiAgZm9yIChjb25zdCBjIG9mIHMuY2hpbGRyZW4pIHtcbiAgICBjb25zdCBzcyA9IGZpbmRTbmFwc2hvdChjb21wb25lbnQsIGMpO1xuICAgIGlmIChzcykge1xuICAgICAgcmV0dXJuIHNzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gd3JhcEludG9PYnNlcnZhYmxlPE8+KG9iajogT2JzZXJ2YWJsZTxPPiB8IE8gfCB2b2lkKTogT2JzZXJ2YWJsZTxPPiB7XG4gIGlmIChpc09ic2VydmFibGUob2JqKSkge1xuICAgIHJldHVybiBvYmo7XG4gIH0gZWxzZSBpZiAoIW9iaikge1xuICAgIHJldHVybiBvZigpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvZihvYmogYXMgTyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,19 +1,2 @@
1
- import { cold as rxjsMarblesCold, hot as rxjsMarblesHot, getTestScheduler as rxjsMarblesTestScheduler, time as rxjsMarblesTime, } from 'jasmine-marbles';
2
- /**
3
- * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.
4
- */
5
- export const cold = rxjsMarblesCold;
6
- /**
7
- * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.
8
- */
9
- export const hot = rxjsMarblesHot;
10
- /**
11
- * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.
12
- */
13
- export const getTestScheduler = rxjsMarblesTestScheduler;
14
- /**
15
- * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.
16
- */
17
- export const time = rxjsMarblesTime;
18
1
  export { readAll, readFirst } from './src/testing-utils';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxJQUFJLElBQUksZUFBZSxFQUN2QixHQUFHLElBQUksY0FBYyxFQUNyQixnQkFBZ0IsSUFBSSx3QkFBd0IsRUFDNUMsSUFBSSxJQUFJLGVBQWUsR0FDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxlQUFlLENBQUM7QUFDcEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDO0FBQ2xDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUM7QUFDekQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb2xkIGFzIHJ4anNNYXJibGVzQ29sZCxcbiAgaG90IGFzIHJ4anNNYXJibGVzSG90LFxuICBnZXRUZXN0U2NoZWR1bGVyIGFzIHJ4anNNYXJibGVzVGVzdFNjaGVkdWxlcixcbiAgdGltZSBhcyByeGpzTWFyYmxlc1RpbWUsXG59IGZyb20gJ2phc21pbmUtbWFyYmxlcyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgSW1wb3J0IGZyb20gJ2phc21pbmUtbWFyYmxlcycgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIE54IHYxNS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbGQgPSByeGpzTWFyYmxlc0NvbGQ7XG4vKipcbiAqIEBkZXByZWNhdGVkIEltcG9ydCBmcm9tICdqYXNtaW5lLW1hcmJsZXMnIGluc3RlYWQuIFdpbGwgYmUgcmVtb3ZlZCBpbiBOeCB2MTUuXG4gKi9cbmV4cG9ydCBjb25zdCBob3QgPSByeGpzTWFyYmxlc0hvdDtcbi8qKlxuICogQGRlcHJlY2F0ZWQgSW1wb3J0IGZyb20gJ2phc21pbmUtbWFyYmxlcycgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIE54IHYxNS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRlc3RTY2hlZHVsZXIgPSByeGpzTWFyYmxlc1Rlc3RTY2hlZHVsZXI7XG4vKipcbiAqIEBkZXByZWNhdGVkIEltcG9ydCBmcm9tICdqYXNtaW5lLW1hcmJsZXMnIGluc3RlYWQuIFdpbGwgYmUgcmVtb3ZlZCBpbiBOeCB2MTUuXG4gKi9cbmV4cG9ydCBjb25zdCB0aW1lID0gcnhqc01hcmJsZXNUaW1lO1xuXG5leHBvcnQgeyByZWFkQWxsLCByZWFkRmlyc3QgfSBmcm9tICcuL3NyYy90ZXN0aW5nLXV0aWxzJztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyByZWFkQWxsLCByZWFkRmlyc3QgfSBmcm9tICcuL3NyYy90ZXN0aW5nLXV0aWxzJztcbiJdfQ==
@@ -1,5 +1,7 @@
1
1
  import { first, toArray } from 'rxjs/operators';
2
2
  /**
3
+ * @deprecated This will be removed in a later version of Nx. Since RxJS 7, use firstValueFrom(obs$.pipe(toArray())) or lastValueFrom(obs$.pipe(toArray())).
4
+ *
3
5
  * @whatItDoes reads all the values from an observable and returns a promise
4
6
  * with an array of all values. This should be used in combination with async/await.
5
7
  *
@@ -15,6 +17,8 @@ export function readAll(o) {
15
17
  return o.pipe(toArray()).toPromise();
16
18
  }
17
19
  /**
20
+ * @deprecated This will be removed in a later version of Nx. Since RxJS 7, use firstValueFrom(obs$)
21
+ *
18
22
  * @whatItDoes reads the first value from an observable and returns a promise
19
23
  * with it. This should be used in combination with async/await.
20
24
  *
@@ -29,4 +33,4 @@ export function readAll(o) {
29
33
  export function readFirst(o) {
30
34
  return o.pipe(first()).toPromise();
31
35
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3Rpbmcvc3JjL3Rlc3RpbmctdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUksQ0FBZ0I7SUFDekMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDdkMsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxDQUFnQjtJQUMzQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgdG9BcnJheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBAd2hhdEl0RG9lcyByZWFkcyBhbGwgdGhlIHZhbHVlcyBmcm9tIGFuIG9ic2VydmFibGUgYW5kIHJldHVybnMgYSBwcm9taXNlXG4gKiB3aXRoIGFuIGFycmF5IG9mIGFsbCB2YWx1ZXMuIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhc3luYy9hd2FpdC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2JzID0gb2YoMSwgMiwgMywgNCk7XG4gKiBjb25zdCByZXMgPSBhd2FpdCByZWFkQWxsKG9icylcbiAqIGV4cGVjdChyZXMpLnRvRXF1YWwoWzEsIDIsIDMsIDRdKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZEFsbDxUPihvOiBPYnNlcnZhYmxlPFQ+KTogUHJvbWlzZTxUW10+IHtcbiAgcmV0dXJuIG8ucGlwZSh0b0FycmF5KCkpLnRvUHJvbWlzZSgpO1xufVxuXG4vKipcbiAqIEB3aGF0SXREb2VzIHJlYWRzIHRoZSBmaXJzdCB2YWx1ZSBmcm9tIGFuIG9ic2VydmFibGUgYW5kIHJldHVybnMgYSBwcm9taXNlXG4gKiB3aXRoIGl0LiBUaGlzIHNob3VsZCBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYXN5bmMvYXdhaXQuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9icyA9IG9mKDEsIDIsIDMsIDQpO1xuICogY29uc3QgcmVzID0gYXdhaXQgcmVhZEZpcnN0KG9icylcbiAqIGV4cGVjdChyZXMpLnRvRXF1YWwoMSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRGaXJzdDxUPihvOiBPYnNlcnZhYmxlPFQ+KTogUHJvbWlzZTxUPiB7XG4gIHJldHVybiBvLnBpcGUoZmlyc3QoKSkudG9Qcm9taXNlKCk7XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3Rpbmcvc3JjL3Rlc3RpbmctdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBSSxDQUFnQjtJQUN6QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUksQ0FBZ0I7SUFDM0MsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBsYXRlciB2ZXJzaW9uIG9mIE54LiBTaW5jZSBSeEpTIDcsIHVzZSBmaXJzdFZhbHVlRnJvbShvYnMkLnBpcGUodG9BcnJheSgpKSkgb3IgbGFzdFZhbHVlRnJvbShvYnMkLnBpcGUodG9BcnJheSgpKSkuXG4gKlxuICogQHdoYXRJdERvZXMgcmVhZHMgYWxsIHRoZSB2YWx1ZXMgZnJvbSBhbiBvYnNlcnZhYmxlIGFuZCByZXR1cm5zIGEgcHJvbWlzZVxuICogd2l0aCBhbiBhcnJheSBvZiBhbGwgdmFsdWVzLiBUaGlzIHNob3VsZCBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYXN5bmMvYXdhaXQuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9icyA9IG9mKDEsIDIsIDMsIDQpO1xuICogY29uc3QgcmVzID0gYXdhaXQgcmVhZEFsbChvYnMpXG4gKiBleHBlY3QocmVzKS50b0VxdWFsKFsxLCAyLCAzLCA0XSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRBbGw8VD4obzogT2JzZXJ2YWJsZTxUPik6IFByb21pc2U8VFtdPiB7XG4gIHJldHVybiBvLnBpcGUodG9BcnJheSgpKS50b1Byb21pc2UoKTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGxhdGVyIHZlcnNpb24gb2YgTnguIFNpbmNlIFJ4SlMgNywgdXNlIGZpcnN0VmFsdWVGcm9tKG9icyQpXG4gKlxuICogQHdoYXRJdERvZXMgcmVhZHMgdGhlIGZpcnN0IHZhbHVlIGZyb20gYW4gb2JzZXJ2YWJsZSBhbmQgcmV0dXJucyBhIHByb21pc2VcbiAqIHdpdGggaXQuIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhc3luYy9hd2FpdC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2JzID0gb2YoMSwgMiwgMywgNCk7XG4gKiBjb25zdCByZXMgPSBhd2FpdCByZWFkRmlyc3Qob2JzKVxuICogZXhwZWN0KHJlcykudG9FcXVhbCgxKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZEZpcnN0PFQ+KG86IE9ic2VydmFibGU8VD4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIG8ucGlwZShmaXJzdCgpKS50b1Byb21pc2UoKTtcbn1cbiJdfQ==
package/executors.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './src/builders/module-federation-dev-server/module-federation-dev-server.impl';
2
+ export * from './src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl';
2
3
  export * from './src/builders/webpack-browser/webpack-browser.impl';
4
+ export * from './src/builders/webpack-dev-server/webpack-dev-server.impl';
3
5
  export * from './src/builders/webpack-server/webpack-server.impl';
4
6
  export * from './src/executors/delegate-build/delegate-build.impl';
5
7
  export * from './src/executors/ng-packagr-lite/ng-packagr-lite.impl';
package/executors.js CHANGED
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./src/builders/module-federation-dev-server/module-federation-dev-server.impl"), exports);
5
+ tslib_1.__exportStar(require("./src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl"), exports);
5
6
  tslib_1.__exportStar(require("./src/builders/webpack-browser/webpack-browser.impl"), exports);
7
+ tslib_1.__exportStar(require("./src/builders/webpack-dev-server/webpack-dev-server.impl"), exports);
6
8
  tslib_1.__exportStar(require("./src/builders/webpack-server/webpack-server.impl"), exports);
7
9
  tslib_1.__exportStar(require("./src/executors/delegate-build/delegate-build.impl"), exports);
8
10
  tslib_1.__exportStar(require("./src/executors/ng-packagr-lite/ng-packagr-lite.impl"), exports);
package/executors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"executors.js","sourceRoot":"","sources":["../../../packages/angular/executors.ts"],"names":[],"mappings":";;;AAAA,wHAA8F;AAC9F,8FAAoE;AACpE,4FAAkE;AAClE,6FAAmE;AACnE,+FAAqE;AACrE,+EAAqD"}
1
+ {"version":3,"file":"executors.js","sourceRoot":"","sources":["../../../packages/angular/executors.ts"],"names":[],"mappings":";;;AAAA,wHAA8F;AAC9F,kHAAwF;AACxF,8FAAoE;AACpE,oGAA0E;AAC1E,4FAAkE;AAClE,6FAAmE;AACnE,+FAAqE;AACrE,+EAAqD"}
package/executors.json CHANGED
@@ -8,32 +8,17 @@
8
8
  "ng-packagr-lite": {
9
9
  "implementation": "./src/executors/ng-packagr-lite/ng-packagr-lite.impl",
10
10
  "schema": "./src/executors/ng-packagr-lite/schema.json",
11
- "description": "Builds a library with support for incremental builds."
11
+ "description": "Builds a library with support for incremental builds.\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nrwl/angular:package` executor but with some key differences:\n- It doesn't run `ngcc` automatically (`ngcc` needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2020 bundles.\n- It doesn't generate package exports in the `package.json`."
12
12
  },
13
13
  "package": {
14
14
  "implementation": "./src/executors/package/package.impl",
15
15
  "schema": "./src/executors/package/schema.json",
16
- "description": "Builds and packages an Angular library to be distributed as an NPM package. It supports incremental builds."
17
- },
18
- "webpack-browser": {
19
- "implementation": "./src/builders/webpack-browser/webpack-browser.impl",
20
- "schema": "./src/builders/webpack-browser/schema.json",
21
- "description": "The `webpack-browser` executor is very similar to the standard `browser` builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building"
22
- },
23
- "webpack-server": {
24
- "implementation": "./src/builders/webpack-server/webpack-server.impl",
25
- "schema": "./src/builders/webpack-server/schema.json",
26
- "description": "The `webpack-server` executor is very similar to the standard `dev-server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration."
27
- },
28
- "module-federation-dev-server": {
29
- "implementation": "./src/builders/module-federation-dev-server/module-federation-dev-server.impl",
30
- "schema": "./src/builders/module-federation-dev-server/schema.json",
31
- "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host."
16
+ "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds."
32
17
  },
33
18
  "file-server": {
34
19
  "implementation": "./src/executors/file-server/file-server.impl",
35
20
  "schema": "./src/executors/file-server/schema.json",
36
- "description": "Serve a web application from a folder."
21
+ "description": "Serves a static web application from a folder."
37
22
  }
38
23
  },
39
24
  "builders": {
@@ -45,7 +30,7 @@
45
30
  "ng-packagr-lite": {
46
31
  "implementation": "./src/executors/ng-packagr-lite/compat",
47
32
  "schema": "./src/executors/ng-packagr-lite/schema.json",
48
- "description": "Builds a library with support for incremental builds."
33
+ "description": "Builds a library with support for incremental builds.\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nrwl/angular:package` executor but with some key differences:\n- It doesn't run `ngcc` automatically (`ngcc` needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`)\n- It only produces ESM2020 bundles\n- It doesn't generate package exports in the `package.json`"
49
34
  },
50
35
  "package": {
51
36
  "implementation": "./src/executors/package/compat",
@@ -57,16 +42,26 @@
57
42
  "schema": "./src/builders/webpack-browser/schema.json",
58
43
  "description": "The `webpack-browser` executor is very similar to the standard `browser` builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building"
59
44
  },
45
+ "webpack-dev-server": {
46
+ "implementation": "./src/builders/webpack-dev-server/webpack-dev-server.impl",
47
+ "schema": "./src/builders/webpack-dev-server/schema.json",
48
+ "description": "The `webpack-dev-server` executor is very similar to the standard `dev-server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration."
49
+ },
60
50
  "webpack-server": {
61
51
  "implementation": "./src/builders/webpack-server/webpack-server.impl",
62
52
  "schema": "./src/builders/webpack-server/schema.json",
63
- "description": "The `webpack-server` executor is very similar to the standard `dev-server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration."
53
+ "description": "The `webpack-server` executor is very similar to the standard `server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR."
64
54
  },
65
55
  "module-federation-dev-server": {
66
56
  "implementation": "./src/builders/module-federation-dev-server/module-federation-dev-server.impl",
67
57
  "schema": "./src/builders/module-federation-dev-server/schema.json",
68
58
  "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host."
69
59
  },
60
+ "module-federation-dev-ssr": {
61
+ "implementation": "./src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl",
62
+ "schema": "./src/builders/module-federation-dev-ssr/schema.json",
63
+ "description": "The module-federation-dev-ssr executor is reserved exclusively for use with host Module Federation applications that use SSR. It allows the user to specify which remote applications should be served with the host."
64
+ },
70
65
  "file-server": {
71
66
  "implementation": "./src/executors/file-server/compat",
72
67
  "schema": "./src/executors/file-server/schema.json",
@@ -41,7 +41,10 @@ function loadRemoteContainer(remoteName) {
41
41
  const remoteUrl = remoteUrlDefinitions
42
42
  ? remoteUrlDefinitions[remoteName]
43
43
  : yield resolveRemoteUrl(remoteName);
44
- const containerUrl = `${remoteUrl}${remoteUrl.endsWith('/') ? '' : '/'}remoteEntry.mjs`;
44
+ let containerUrl = remoteUrl;
45
+ if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {
46
+ containerUrl = `${remoteUrl}${remoteUrl.endsWith('/') ? '' : '/'}remoteEntry.mjs`;
47
+ }
45
48
  const container = yield loadModule(containerUrl);
46
49
  yield container.init(__webpack_share_scopes__.default);
47
50
  remoteContainerMap.set(remoteName, container);
@@ -1 +1 @@
1
- {"version":3,"file":"nrwl-angular-mf.mjs","sources":["../../mf/mf.ts","../../mf/nrwl-angular-mf.ts"],"sourcesContent":["export type ResolveRemoteUrlFunction = (\n remoteName: string\n) => string | Promise<string>;\n\ndeclare const __webpack_init_sharing__: (scope: 'default') => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: unknown };\n\nlet resolveRemoteUrl: ResolveRemoteUrlFunction;\nexport function setRemoteUrlResolver(\n _resolveRemoteUrl: ResolveRemoteUrlFunction\n) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\n\nlet remoteUrlDefinitions: Record<string, string>;\nexport function setRemoteDefinitions(definitions: Record<string, string>) {\n remoteUrlDefinitions = definitions;\n}\n\nlet remoteModuleMap = new Map<string, unknown>();\nlet remoteContainerMap = new Map<string, unknown>();\nexport async function loadRemoteModule(remoteName: string, moduleName: string) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n\n const factory = await container.get(moduleName);\n const Module = factory();\n\n remoteModuleMap.set(remoteModuleKey, Module);\n\n return Module;\n}\n\nfunction loadModule(url: string) {\n return import(/* webpackIgnore:true */ url);\n}\n\nlet initialSharingScopeCreated = false;\nasync function loadRemoteContainer(remoteName: string) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error(\n 'Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.'\n );\n }\n\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n\n const containerUrl = `${remoteUrl}${\n remoteUrl.endsWith('/') ? '' : '/'\n }remoteEntry.mjs`;\n\n const container = await loadModule(containerUrl);\n await container.init(__webpack_share_scopes__.default);\n\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAOA,IAAI,gBAA0C,CAAC;AACzC,SAAU,oBAAoB,CAClC,iBAA2C,EAAA;IAE3C,gBAAgB,GAAG,iBAAiB,CAAC;AACvC,CAAC;AAED,IAAI,oBAA4C,CAAC;AAC3C,SAAU,oBAAoB,CAAC,WAAmC,EAAA;IACtE,oBAAoB,GAAG,WAAW,CAAC;AACrC,CAAC;AAED,IAAI,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;AACjD,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAmB,CAAC;AAC9B,SAAA,gBAAgB,CAAC,UAAkB,EAAE,UAAkB,EAAA;;AAC3E,QAAA,MAAM,eAAe,GAAG,CAAA,EAAG,UAAU,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;AACtD,QAAA,IAAI,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AACxC,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7C,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AAClD,cAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,cAAE,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChD,QAAA,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;AAEzB,QAAA,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAE7C,QAAA,OAAO,MAAM,CAAC;KACf,CAAA,CAAA;AAAA,CAAA;AAED,SAAS,UAAU,CAAC,GAAW,EAAA;AAC7B,IAAA,OAAO,gCAAgC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;AACvC,SAAe,mBAAmB,CAAC,UAAkB,EAAA;;AACnD,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;AAC9C,YAAA,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;AACH,SAAA;QAED,IAAI,CAAC,0BAA0B,EAAE;YAC/B,0BAA0B,GAAG,IAAI,CAAC;AAClC,YAAA,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;AAC3C,SAAA;QAED,MAAM,SAAS,GAAG,oBAAoB;AACpC,cAAE,oBAAoB,CAAC,UAAU,CAAC;AAClC,cAAE,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAG,CAAG,EAAA,SAAS,GAC/B,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GACjC,iBAAiB,CAAC;AAElB,QAAA,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAEvD,QAAA,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9C,QAAA,OAAO,SAAS,CAAC;KAClB,CAAA,CAAA;AAAA;;ACrED;;AAEG;;;;"}
1
+ {"version":3,"file":"nrwl-angular-mf.mjs","sources":["../../mf/mf.ts","../../mf/nrwl-angular-mf.ts"],"sourcesContent":["export type ResolveRemoteUrlFunction = (\n remoteName: string\n) => string | Promise<string>;\n\ndeclare const __webpack_init_sharing__: (scope: 'default') => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: unknown };\n\nlet resolveRemoteUrl: ResolveRemoteUrlFunction;\nexport function setRemoteUrlResolver(\n _resolveRemoteUrl: ResolveRemoteUrlFunction\n) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\n\nlet remoteUrlDefinitions: Record<string, string>;\nexport function setRemoteDefinitions(definitions: Record<string, string>) {\n remoteUrlDefinitions = definitions;\n}\n\nlet remoteModuleMap = new Map<string, unknown>();\nlet remoteContainerMap = new Map<string, unknown>();\nexport async function loadRemoteModule(remoteName: string, moduleName: string) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n\n const factory = await container.get(moduleName);\n const Module = factory();\n\n remoteModuleMap.set(remoteModuleKey, Module);\n\n return Module;\n}\n\nfunction loadModule(url: string) {\n return import(/* webpackIgnore:true */ url);\n}\n\nlet initialSharingScopeCreated = false;\nasync function loadRemoteContainer(remoteName: string) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error(\n 'Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.'\n );\n }\n\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n\n let containerUrl = remoteUrl;\n if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {\n containerUrl = `${remoteUrl}${\n remoteUrl.endsWith('/') ? '' : '/'\n }remoteEntry.mjs`;\n }\n\n const container = await loadModule(containerUrl);\n await container.init(__webpack_share_scopes__.default);\n\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAOA,IAAI,gBAA0C,CAAC;AACzC,SAAU,oBAAoB,CAClC,iBAA2C,EAAA;IAE3C,gBAAgB,GAAG,iBAAiB,CAAC;AACvC,CAAC;AAED,IAAI,oBAA4C,CAAC;AAC3C,SAAU,oBAAoB,CAAC,WAAmC,EAAA;IACtE,oBAAoB,GAAG,WAAW,CAAC;AACrC,CAAC;AAED,IAAI,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;AACjD,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAmB,CAAC;AAC9B,SAAA,gBAAgB,CAAC,UAAkB,EAAE,UAAkB,EAAA;;AAC3E,QAAA,MAAM,eAAe,GAAG,CAAA,EAAG,UAAU,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;AACtD,QAAA,IAAI,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AACxC,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7C,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AAClD,cAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,cAAE,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChD,QAAA,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;AAEzB,QAAA,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAE7C,QAAA,OAAO,MAAM,CAAC;KACf,CAAA,CAAA;AAAA,CAAA;AAED,SAAS,UAAU,CAAC,GAAW,EAAA;AAC7B,IAAA,OAAO,gCAAgC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;AACvC,SAAe,mBAAmB,CAAC,UAAkB,EAAA;;AACnD,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;AAC9C,YAAA,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;AACH,SAAA;QAED,IAAI,CAAC,0BAA0B,EAAE;YAC/B,0BAA0B,GAAG,IAAI,CAAC;AAClC,YAAA,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;AAC3C,SAAA;QAED,MAAM,SAAS,GAAG,oBAAoB;AACpC,cAAE,oBAAoB,CAAC,UAAU,CAAC;AAClC,cAAE,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,YAAY,GAAG,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC7D,YAAA,YAAY,GAAG,CAAG,EAAA,SAAS,GACzB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GACjC,iBAAiB,CAAC;AACnB,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAEvD,QAAA,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9C,QAAA,OAAO,SAAS,CAAC;KAClB,CAAA,CAAA;AAAA;;ACxED;;AAEG;;;;"}
@@ -1,7 +1,8 @@
1
- import { cold as cold$1, hot as hot$1, getTestScheduler as getTestScheduler$1, time as time$1 } from 'jasmine-marbles';
2
1
  import { toArray, first } from 'rxjs/operators';
3
2
 
4
3
  /**
4
+ * @deprecated This will be removed in a later version of Nx. Since RxJS 7, use firstValueFrom(obs$.pipe(toArray())) or lastValueFrom(obs$.pipe(toArray())).
5
+ *
5
6
  * @whatItDoes reads all the values from an observable and returns a promise
6
7
  * with an array of all values. This should be used in combination with async/await.
7
8
  *
@@ -17,6 +18,8 @@ function readAll(o) {
17
18
  return o.pipe(toArray()).toPromise();
18
19
  }
19
20
  /**
21
+ * @deprecated This will be removed in a later version of Nx. Since RxJS 7, use firstValueFrom(obs$)
22
+ *
20
23
  * @whatItDoes reads the first value from an observable and returns a promise
21
24
  * with it. This should be used in combination with async/await.
22
25
  *
@@ -32,26 +35,9 @@ function readFirst(o) {
32
35
  return o.pipe(first()).toPromise();
33
36
  }
34
37
 
35
- /**
36
- * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.
37
- */
38
- const cold = cold$1;
39
- /**
40
- * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.
41
- */
42
- const hot = hot$1;
43
- /**
44
- * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.
45
- */
46
- const getTestScheduler = getTestScheduler$1;
47
- /**
48
- * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.
49
- */
50
- const time = time$1;
51
-
52
38
  /**
53
39
  * Generated bundle index. Do not edit.
54
40
  */
55
41
 
56
- export { cold, getTestScheduler, hot, readAll, readFirst, time };
42
+ export { readAll, readFirst };
57
43
  //# sourceMappingURL=nrwl-angular-testing.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nrwl-angular-testing.mjs","sources":["../../testing/src/testing-utils.ts","../../testing/index.ts","../../testing/nrwl-angular-testing.ts"],"sourcesContent":["import type { Observable } from 'rxjs';\nimport { first, toArray } from 'rxjs/operators';\n\n/**\n * @whatItDoes reads all the values from an observable and returns a promise\n * with an array of all values. This should be used in combination with async/await.\n *\n * ## Example\n *\n * ```typescript\n * const obs = of(1, 2, 3, 4);\n * const res = await readAll(obs)\n * expect(res).toEqual([1, 2, 3, 4]);\n * ```\n */\nexport function readAll<T>(o: Observable<T>): Promise<T[]> {\n return o.pipe(toArray()).toPromise();\n}\n\n/**\n * @whatItDoes reads the first value from an observable and returns a promise\n * with it. This should be used in combination with async/await.\n *\n * ## Example\n *\n * ```typescript\n * const obs = of(1, 2, 3, 4);\n * const res = await readFirst(obs)\n * expect(res).toEqual(1);\n * ```\n */\nexport function readFirst<T>(o: Observable<T>): Promise<T> {\n return o.pipe(first()).toPromise();\n}\n","import {\n cold as rxjsMarblesCold,\n hot as rxjsMarblesHot,\n getTestScheduler as rxjsMarblesTestScheduler,\n time as rxjsMarblesTime,\n} from 'jasmine-marbles';\n\n/**\n * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.\n */\nexport const cold = rxjsMarblesCold;\n/**\n * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.\n */\nexport const hot = rxjsMarblesHot;\n/**\n * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.\n */\nexport const getTestScheduler = rxjsMarblesTestScheduler;\n/**\n * @deprecated Import from 'jasmine-marbles' instead. Will be removed in Nx v15.\n */\nexport const time = rxjsMarblesTime;\n\nexport { readAll, readFirst } from './src/testing-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["rxjsMarblesCold","rxjsMarblesHot","rxjsMarblesTestScheduler","rxjsMarblesTime"],"mappings":";;;AAGA;;;;;;;;;;;AAWG;AACG,SAAU,OAAO,CAAI,CAAgB,EAAA;IACzC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;AAWG;AACG,SAAU,SAAS,CAAI,CAAgB,EAAA;IAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;AACrC;;AC1BA;;AAEG;AACI,MAAM,IAAI,GAAGA,OAAgB;AACpC;;AAEG;AACI,MAAM,GAAG,GAAGC,MAAe;AAClC;;AAEG;AACI,MAAM,gBAAgB,GAAGC,mBAAyB;AACzD;;AAEG;AACI,MAAM,IAAI,GAAGC;;ACtBpB;;AAEG;;;;"}
1
+ {"version":3,"file":"nrwl-angular-testing.mjs","sources":["../../testing/src/testing-utils.ts","../../testing/nrwl-angular-testing.ts"],"sourcesContent":["import type { Observable } from 'rxjs';\nimport { first, toArray } from 'rxjs/operators';\n\n/**\n * @deprecated This will be removed in a later version of Nx. Since RxJS 7, use firstValueFrom(obs$.pipe(toArray())) or lastValueFrom(obs$.pipe(toArray())).\n *\n * @whatItDoes reads all the values from an observable and returns a promise\n * with an array of all values. This should be used in combination with async/await.\n *\n * ## Example\n *\n * ```typescript\n * const obs = of(1, 2, 3, 4);\n * const res = await readAll(obs)\n * expect(res).toEqual([1, 2, 3, 4]);\n * ```\n */\nexport function readAll<T>(o: Observable<T>): Promise<T[]> {\n return o.pipe(toArray()).toPromise();\n}\n\n/**\n * @deprecated This will be removed in a later version of Nx. Since RxJS 7, use firstValueFrom(obs$)\n *\n * @whatItDoes reads the first value from an observable and returns a promise\n * with it. This should be used in combination with async/await.\n *\n * ## Example\n *\n * ```typescript\n * const obs = of(1, 2, 3, 4);\n * const res = await readFirst(obs)\n * expect(res).toEqual(1);\n * ```\n */\nexport function readFirst<T>(o: Observable<T>): Promise<T> {\n return o.pipe(first()).toPromise();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAGA;;;;;;;;;;;;;AAaG;AACG,SAAU,OAAO,CAAI,CAAgB,EAAA;IACzC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;AAaG;AACG,SAAU,SAAS,CAAI,CAAgB,EAAA;IAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;AACrC;;ACrCA;;AAEG;;;;"}