@ngxs/store 3.8.2 → 18.0.0-dev.master-56d8014

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 (379) hide show
  1. package/README.md +1 -1
  2. package/{esm2015/index.js → esm2022/index.mjs} +2 -2
  3. package/esm2022/internals/custom-rxjs-subjects.mjs +92 -0
  4. package/esm2022/internals/index.mjs +10 -0
  5. package/esm2022/internals/initial-state.mjs +18 -0
  6. package/esm2022/internals/internal-tokens.mjs +6 -0
  7. package/esm2022/internals/memoize.mjs +45 -0
  8. package/esm2022/internals/metadata.mjs +57 -0
  9. package/esm2022/internals/ngxs-app-bootstrapped-state.mjs +19 -0
  10. package/esm2022/internals/state-stream.mjs +32 -0
  11. package/esm2022/internals/state-token.mjs +17 -0
  12. package/esm2022/internals/symbols.mjs +11 -0
  13. package/esm2022/internals/testing/fresh-platform.mjs +72 -0
  14. package/{esm2015/internals/testing/helpers/ngxs-test.component.js → esm2022/internals/testing/helpers/ngxs-test.component.mjs} +4 -4
  15. package/esm2022/internals/testing/helpers/ngxs-test.module.mjs +20 -0
  16. package/{esm2015/internals/testing/index.js → esm2022/internals/testing/index.mjs} +2 -2
  17. package/esm2022/internals/testing/ngxs.setup.mjs +48 -0
  18. package/{esm2015/internals/testing/skip-console-logging.js → esm2022/internals/testing/skip-console-logging.mjs} +1 -1
  19. package/esm2022/internals/testing/symbol.mjs +2 -0
  20. package/esm2022/operators/append.mjs +20 -0
  21. package/esm2022/operators/iif.mjs +38 -0
  22. package/esm2022/operators/insert-item.mjs +29 -0
  23. package/esm2022/operators/patch.mjs +21 -0
  24. package/esm2022/operators/remove-item.mjs +22 -0
  25. package/esm2022/operators/update-item.mjs +40 -0
  26. package/esm2022/plugins/actions.mjs +16 -0
  27. package/esm2022/plugins/index.mjs +4 -0
  28. package/esm2022/plugins/ngxs-store-plugins.mjs +5 -0
  29. package/esm2022/plugins/symbols.mjs +6 -0
  30. package/esm2022/plugins/utils.mjs +51 -0
  31. package/esm2022/src/actions/symbols.mjs +2 -0
  32. package/esm2022/src/actions-stream.mjs +52 -0
  33. package/esm2022/src/configs/messages.config.mjs +48 -0
  34. package/esm2022/src/decorators/action.mjs +31 -0
  35. package/esm2022/src/decorators/select/select-factory.mjs +29 -0
  36. package/esm2022/src/decorators/select/select.mjs +29 -0
  37. package/esm2022/src/decorators/select/symbols.mjs +29 -0
  38. package/esm2022/src/decorators/selector/selector.mjs +29 -0
  39. package/esm2022/src/decorators/selector/symbols.mjs +2 -0
  40. package/esm2022/src/decorators/selector-options.mjs +21 -0
  41. package/esm2022/src/decorators/state.mjs +35 -0
  42. package/esm2022/src/dev-features/ngxs-development.module.mjs +28 -0
  43. package/esm2022/src/dev-features/ngxs-unhandled-actions-logger.mjs +45 -0
  44. package/esm2022/src/dev-features/symbols.mjs +7 -0
  45. package/esm2022/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs +55 -0
  46. package/{esm2015/src/execution/internal-ngxs-execution-strategy.js → esm2022/src/execution/internal-ngxs-execution-strategy.mjs} +6 -6
  47. package/{esm2015/src/execution/noop-ngxs-execution-strategy.js → esm2022/src/execution/noop-ngxs-execution-strategy.mjs} +4 -4
  48. package/esm2022/src/execution/symbols.mjs +29 -0
  49. package/esm2022/src/internal/dispatcher.mjs +106 -0
  50. package/esm2022/src/internal/fallback-subscriber.mjs +29 -0
  51. package/esm2022/src/internal/internals.mjs +206 -0
  52. package/esm2022/src/internal/lifecycle-state-manager.mjs +86 -0
  53. package/esm2022/src/internal/state-context-factory.mjs +71 -0
  54. package/esm2022/src/internal/state-factory.mjs +311 -0
  55. package/esm2022/src/internal/state-operations.mjs +63 -0
  56. package/esm2022/src/internal/state-operators.mjs +20 -0
  57. package/esm2022/src/internal/unhandled-rxjs-error-callback.mjs +39 -0
  58. package/esm2022/src/ivy/ivy-enabled-in-dev-mode.mjs +25 -0
  59. package/esm2022/src/module.mjs +27 -0
  60. package/esm2022/src/modules/ngxs-feature.module.mjs +18 -0
  61. package/esm2022/src/modules/ngxs-root.module.mjs +18 -0
  62. package/esm2022/src/ngxs-unhandled-error-handler.mjs +29 -0
  63. package/esm2022/src/operators/of-action.mjs +104 -0
  64. package/esm2022/src/plugin-manager.mjs +37 -0
  65. package/esm2022/src/plugin_api.mjs +2 -0
  66. package/{esm2015/src/private_api.js → esm2022/src/private_api.mjs} +2 -1
  67. package/esm2022/src/public_api.mjs +20 -0
  68. package/esm2022/src/selectors/create-model-selector.mjs +30 -0
  69. package/esm2022/src/selectors/create-pick-selector.mjs +16 -0
  70. package/esm2022/src/selectors/create-property-selectors.mjs +20 -0
  71. package/esm2022/src/selectors/create-selector.mjs +9 -0
  72. package/esm2022/src/selectors/private_api.mjs +2 -0
  73. package/esm2022/src/selectors/selector-checks.util.mjs +18 -0
  74. package/esm2022/src/selectors/selector-metadata.mjs +35 -0
  75. package/esm2022/src/selectors/selector-models.mjs +2 -0
  76. package/esm2022/src/selectors/selector-types.util.mjs +2 -0
  77. package/esm2022/src/selectors/selector-utils.mjs +95 -0
  78. package/esm2022/src/standalone-features/feature-providers.mjs +20 -0
  79. package/esm2022/src/standalone-features/index.mjs +5 -0
  80. package/esm2022/src/standalone-features/initializers.mjs +89 -0
  81. package/esm2022/src/standalone-features/plugin.mjs +20 -0
  82. package/esm2022/src/standalone-features/preboot.mjs +32 -0
  83. package/esm2022/src/standalone-features/provide-states.mjs +26 -0
  84. package/esm2022/src/standalone-features/provide-store.mjs +26 -0
  85. package/esm2022/src/standalone-features/root-providers.mjs +47 -0
  86. package/esm2022/src/store.mjs +117 -0
  87. package/esm2022/src/symbols.mjs +87 -0
  88. package/esm2022/src/utils/compose.mjs +26 -0
  89. package/esm2022/src/utils/create-dispatch-map.mjs +11 -0
  90. package/esm2022/src/utils/create-select-map.mjs +13 -0
  91. package/esm2022/src/utils/dispatch.mjs +7 -0
  92. package/{esm2015/src/utils/freeze.js → esm2022/src/utils/freeze.mjs} +1 -1
  93. package/esm2022/src/utils/public_api.mjs +5 -0
  94. package/esm2022/src/utils/select.mjs +19 -0
  95. package/esm2022/src/utils/store-validators.mjs +25 -0
  96. package/{fesm2015/ngxs-store-internals-testing.js → fesm2022/ngxs-store-internals-testing.mjs} +84 -81
  97. package/fesm2022/ngxs-store-internals-testing.mjs.map +1 -0
  98. package/fesm2022/ngxs-store-internals.mjs +296 -0
  99. package/fesm2022/ngxs-store-internals.mjs.map +1 -0
  100. package/{fesm2015/ngxs-store-operators.js → fesm2022/ngxs-store-operators.mjs} +3 -3
  101. package/fesm2022/ngxs-store-operators.mjs.map +1 -0
  102. package/fesm2022/ngxs-store-plugins.mjs +80 -0
  103. package/fesm2022/ngxs-store-plugins.mjs.map +1 -0
  104. package/{fesm2015/ngxs-store.js → fesm2022/ngxs-store.mjs} +1319 -1265
  105. package/fesm2022/ngxs-store.mjs.map +1 -0
  106. package/index.d.ts +1 -1
  107. package/{src/internal → internals}/custom-rxjs-subjects.d.ts +2 -2
  108. package/internals/index.d.ts +8 -4
  109. package/internals/initial-state.d.ts +5 -5
  110. package/internals/memoize.d.ts +1 -1
  111. package/internals/metadata.d.ts +25 -0
  112. package/internals/ngxs-app-bootstrapped-state.d.ts +8 -0
  113. package/internals/state-stream.d.ts +15 -0
  114. package/internals/state-token.d.ts +7 -0
  115. package/internals/symbols.d.ts +84 -3
  116. package/internals/testing/helpers/ngxs-test.component.d.ts +1 -1
  117. package/internals/testing/index.d.ts +2 -2
  118. package/internals/testing/symbol.d.ts +2 -2
  119. package/operators/patch.d.ts +2 -2
  120. package/operators/types.d.ts +5 -5
  121. package/operators/utils.d.ts +1 -1
  122. package/package.json +44 -13
  123. package/{src/actions → plugins}/actions.d.ts +3 -3
  124. package/plugins/index.d.ts +3 -0
  125. package/plugins/symbols.d.ts +13 -0
  126. package/{src/utils → plugins}/utils.d.ts +0 -17
  127. package/schematics/collection.json +36 -0
  128. package/schematics/src/actions/actions.factory.d.ts +3 -0
  129. package/schematics/src/actions/actions.factory.js +24 -0
  130. package/schematics/src/actions/actions.factory.js.map +1 -0
  131. package/schematics/src/actions/files/__name__.actions.ts__template__ +4 -0
  132. package/schematics/src/actions/schema.json +35 -0
  133. package/schematics/src/ng-add/add-declaration.d.ts +4 -0
  134. package/schematics/src/ng-add/add-declaration.js +109 -0
  135. package/schematics/src/ng-add/add-declaration.js.map +1 -0
  136. package/schematics/src/ng-add/ng-add.factory.d.ts +9 -0
  137. package/schematics/src/ng-add/ng-add.factory.js +89 -0
  138. package/schematics/src/ng-add/ng-add.factory.js.map +1 -0
  139. package/schematics/src/ng-add/schema.json +72 -0
  140. package/schematics/src/starter-kit/files/store/auth/auth.actions.ts__template__ +6 -0
  141. package/schematics/src/starter-kit/files/store/auth/auth.state.spec.ts__template__ +55 -0
  142. package/schematics/src/starter-kit/files/store/auth/auth.state.ts__template__ +47 -0
  143. package/schematics/src/starter-kit/files/store/dashboard/index.ts__template__ +4 -0
  144. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.actions.ts__template__ +10 -0
  145. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.spec.ts__template__ +92 -0
  146. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.ts__template__ +62 -0
  147. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.actions.ts__template__ +6 -0
  148. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.spec.ts__template__ +61 -0
  149. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.ts__template__ +42 -0
  150. package/schematics/src/starter-kit/files/store/store.config.ts__template__ +39 -0
  151. package/schematics/src/starter-kit/files/store/store.module.ts__template__ +22 -0
  152. package/schematics/src/starter-kit/schema.json +22 -0
  153. package/schematics/src/starter-kit/starter-kit.factory.d.ts +3 -0
  154. package/schematics/src/starter-kit/starter-kit.factory.js +21 -0
  155. package/schematics/src/starter-kit/starter-kit.factory.js.map +1 -0
  156. package/schematics/src/state/files/__name__.state.spec.ts__template__ +25 -0
  157. package/schematics/src/state/files/__name__.state.ts__template__ +22 -0
  158. package/schematics/src/state/schema.json +44 -0
  159. package/schematics/src/state/state.factory.d.ts +3 -0
  160. package/schematics/src/state/state.factory.js +29 -0
  161. package/schematics/src/state/state.factory.js.map +1 -0
  162. package/schematics/src/store/files/__name__.actions.ts__template__ +4 -0
  163. package/schematics/src/store/files/__name__.state.spec.ts__template__ +26 -0
  164. package/schematics/src/store/files/__name__.state.ts__template__ +29 -0
  165. package/schematics/src/store/schema.json +44 -0
  166. package/schematics/src/store/store.factory.d.ts +3 -0
  167. package/schematics/src/store/store.factory.js +29 -0
  168. package/schematics/src/store/store.factory.js.map +1 -0
  169. package/schematics/src/utils/common/lib.config.d.ts +10 -0
  170. package/schematics/src/utils/common/lib.config.js +15 -0
  171. package/schematics/src/utils/common/lib.config.js.map +1 -0
  172. package/schematics/src/utils/common/project-files.config.d.ts +3 -0
  173. package/schematics/src/utils/common/project-files.config.js +7 -0
  174. package/schematics/src/utils/common/project-files.config.js.map +1 -0
  175. package/schematics/src/utils/common/properties.d.ts +1 -0
  176. package/schematics/src/utils/common/properties.js +8 -0
  177. package/schematics/src/utils/common/properties.js.map +1 -0
  178. package/schematics/src/utils/config.d.ts +119 -0
  179. package/schematics/src/utils/config.js +21 -0
  180. package/schematics/src/utils/config.js.map +1 -0
  181. package/schematics/src/utils/generate-utils.d.ts +4 -0
  182. package/schematics/src/utils/generate-utils.js +14 -0
  183. package/schematics/src/utils/generate-utils.js.map +1 -0
  184. package/schematics/src/utils/interfaces/package.interface.d.ts +7 -0
  185. package/schematics/src/utils/interfaces/package.interface.js +3 -0
  186. package/schematics/src/utils/interfaces/package.interface.js.map +1 -0
  187. package/schematics/src/utils/ng-utils/README.md +1 -0
  188. package/schematics/src/utils/ng-utils/ast-utils.d.ts +99 -0
  189. package/schematics/src/utils/ng-utils/ast-utils.js +517 -0
  190. package/schematics/src/utils/ng-utils/ast-utils.js.map +1 -0
  191. package/schematics/src/utils/ng-utils/ng-ast-utils.d.ts +5 -0
  192. package/schematics/src/utils/ng-utils/ng-ast-utils.js +67 -0
  193. package/schematics/src/utils/ng-utils/ng-ast-utils.js.map +1 -0
  194. package/schematics/src/utils/ng-utils/project.d.ts +2 -0
  195. package/schematics/src/utils/ng-utils/project.js +27 -0
  196. package/schematics/src/utils/ng-utils/project.js.map +1 -0
  197. package/schematics/src/utils/ng-utils/standalone/app_config.d.ts +16 -0
  198. package/schematics/src/utils/ng-utils/standalone/app_config.js +84 -0
  199. package/schematics/src/utils/ng-utils/standalone/app_config.js.map +1 -0
  200. package/schematics/src/utils/ng-utils/standalone/code_block.d.ts +46 -0
  201. package/schematics/src/utils/ng-utils/standalone/code_block.js +73 -0
  202. package/schematics/src/utils/ng-utils/standalone/code_block.js.map +1 -0
  203. package/schematics/src/utils/ng-utils/standalone/index.d.ts +1 -0
  204. package/schematics/src/utils/ng-utils/standalone/index.js +7 -0
  205. package/schematics/src/utils/ng-utils/standalone/index.js.map +1 -0
  206. package/schematics/src/utils/ng-utils/standalone/rules.d.ts +38 -0
  207. package/schematics/src/utils/ng-utils/standalone/rules.js +195 -0
  208. package/schematics/src/utils/ng-utils/standalone/rules.js.map +1 -0
  209. package/schematics/src/utils/ng-utils/standalone/util.d.ts +28 -0
  210. package/schematics/src/utils/ng-utils/standalone/util.js +138 -0
  211. package/schematics/src/utils/ng-utils/standalone/util.js.map +1 -0
  212. package/schematics/src/utils/normalize-options.d.ts +11 -0
  213. package/schematics/src/utils/normalize-options.js +27 -0
  214. package/schematics/src/utils/normalize-options.js.map +1 -0
  215. package/schematics/src/utils/project.d.ts +19 -0
  216. package/schematics/src/utils/project.js +46 -0
  217. package/schematics/src/utils/project.js.map +1 -0
  218. package/schematics/src/utils/versions.json +3 -0
  219. package/src/actions/symbols.d.ts +3 -17
  220. package/src/actions-stream.d.ts +2 -2
  221. package/src/configs/messages.config.d.ts +3 -1
  222. package/src/decorators/action.d.ts +28 -3
  223. package/src/decorators/select/select.d.ts +3 -0
  224. package/src/decorators/select/symbols.d.ts +2 -3
  225. package/src/decorators/selector/selector.d.ts +2 -3
  226. package/src/decorators/selector/symbols.d.ts +73 -4
  227. package/src/decorators/selector-options.d.ts +2 -2
  228. package/src/decorators/state.d.ts +2 -3
  229. package/src/dev-features/ngxs-development.module.d.ts +1 -0
  230. package/src/execution/symbols.d.ts +8 -2
  231. package/src/internal/dispatcher.d.ts +5 -5
  232. package/src/internal/fallback-subscriber.d.ts +3 -0
  233. package/src/internal/internals.d.ts +13 -69
  234. package/src/internal/lifecycle-state-manager.d.ts +6 -6
  235. package/src/internal/state-factory.d.ts +8 -6
  236. package/src/internal/state-operations.d.ts +2 -2
  237. package/src/internal/unhandled-rxjs-error-callback.d.ts +2 -0
  238. package/src/module.d.ts +3 -14
  239. package/src/modules/ngxs-feature.module.d.ts +2 -9
  240. package/src/modules/ngxs-root.module.d.ts +2 -9
  241. package/src/ngxs-unhandled-error-handler.d.ts +16 -0
  242. package/src/operators/of-action.d.ts +3 -3
  243. package/src/plugin-manager.d.ts +1 -1
  244. package/src/plugin_api.d.ts +1 -5
  245. package/src/private_api.d.ts +1 -0
  246. package/src/public_api.d.ts +11 -8
  247. package/src/selectors/create-model-selector.d.ts +2 -2
  248. package/src/selectors/create-pick-selector.d.ts +1 -1
  249. package/src/selectors/create-property-selectors.d.ts +3 -3
  250. package/src/selectors/create-selector.d.ts +10 -10
  251. package/src/selectors/private_api.d.ts +7 -0
  252. package/src/selectors/selector-checks.util.d.ts +2 -2
  253. package/src/selectors/selector-metadata.d.ts +4 -4
  254. package/src/selectors/selector-models.d.ts +4 -4
  255. package/src/selectors/selector-types.util.d.ts +6 -7
  256. package/src/selectors/selector-utils.d.ts +3 -3
  257. package/src/standalone-features/feature-providers.d.ts +7 -0
  258. package/src/standalone-features/index.d.ts +4 -0
  259. package/src/standalone-features/initializers.d.ts +29 -0
  260. package/src/standalone-features/plugin.d.ts +17 -0
  261. package/src/standalone-features/preboot.d.ts +26 -0
  262. package/src/standalone-features/provide-states.d.ts +18 -0
  263. package/src/standalone-features/provide-store.d.ts +22 -0
  264. package/src/standalone-features/root-providers.d.ts +8 -0
  265. package/src/store.d.ts +13 -15
  266. package/src/symbols.d.ts +12 -54
  267. package/src/utils/compose.d.ts +1 -1
  268. package/src/utils/create-dispatch-map.d.ts +4 -0
  269. package/src/utils/create-select-map.d.ts +4 -0
  270. package/src/utils/dispatch.d.ts +2 -0
  271. package/src/utils/public_api.d.ts +4 -0
  272. package/src/utils/select.d.ts +16 -0
  273. package/src/utils/store-validators.d.ts +4 -3
  274. package/bundles/ngxs-store-internals-testing.umd.js +0 -684
  275. package/bundles/ngxs-store-internals-testing.umd.js.map +0 -1
  276. package/bundles/ngxs-store-internals.umd.js +0 -141
  277. package/bundles/ngxs-store-internals.umd.js.map +0 -1
  278. package/bundles/ngxs-store-operators.umd.js +0 -224
  279. package/bundles/ngxs-store-operators.umd.js.map +0 -1
  280. package/bundles/ngxs-store.umd.js +0 -3076
  281. package/bundles/ngxs-store.umd.js.map +0 -1
  282. package/esm2015/internals/index.js +0 -5
  283. package/esm2015/internals/initial-state.js +0 -17
  284. package/esm2015/internals/internal-tokens.js +0 -5
  285. package/esm2015/internals/memoize.js +0 -45
  286. package/esm2015/internals/ngxs-bootstrapper.js +0 -29
  287. package/esm2015/internals/src/symbols.js +0 -2
  288. package/esm2015/internals/symbols.js +0 -2
  289. package/esm2015/internals/testing/fresh-platform.js +0 -70
  290. package/esm2015/internals/testing/helpers/ngxs-test.module.js +0 -21
  291. package/esm2015/internals/testing/ngxs.setup.js +0 -46
  292. package/esm2015/internals/testing/symbol.js +0 -2
  293. package/esm2015/operators/append.js +0 -20
  294. package/esm2015/operators/iif.js +0 -38
  295. package/esm2015/operators/insert-item.js +0 -29
  296. package/esm2015/operators/patch.js +0 -21
  297. package/esm2015/operators/remove-item.js +0 -22
  298. package/esm2015/operators/update-item.js +0 -40
  299. package/esm2015/src/actions/actions.js +0 -16
  300. package/esm2015/src/actions/symbols.js +0 -2
  301. package/esm2015/src/actions-stream.js +0 -52
  302. package/esm2015/src/configs/messages.config.js +0 -36
  303. package/esm2015/src/decorators/action.js +0 -33
  304. package/esm2015/src/decorators/select/select-factory.js +0 -29
  305. package/esm2015/src/decorators/select/select.js +0 -26
  306. package/esm2015/src/decorators/select/symbols.js +0 -29
  307. package/esm2015/src/decorators/selector/selector.js +0 -32
  308. package/esm2015/src/decorators/selector/symbols.js +0 -2
  309. package/esm2015/src/decorators/selector-options.js +0 -21
  310. package/esm2015/src/decorators/state.js +0 -36
  311. package/esm2015/src/dev-features/ngxs-development.module.js +0 -22
  312. package/esm2015/src/dev-features/ngxs-unhandled-actions-logger.js +0 -46
  313. package/esm2015/src/dev-features/symbols.js +0 -6
  314. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +0 -57
  315. package/esm2015/src/execution/symbols.js +0 -23
  316. package/esm2015/src/internal/custom-rxjs-subjects.js +0 -92
  317. package/esm2015/src/internal/dispatcher.js +0 -104
  318. package/esm2015/src/internal/error-handler.js +0 -64
  319. package/esm2015/src/internal/internals.js +0 -248
  320. package/esm2015/src/internal/lifecycle-state-manager.js +0 -79
  321. package/esm2015/src/internal/state-context-factory.js +0 -68
  322. package/esm2015/src/internal/state-factory.js +0 -288
  323. package/esm2015/src/internal/state-operations.js +0 -63
  324. package/esm2015/src/internal/state-operators.js +0 -20
  325. package/esm2015/src/internal/state-stream.js +0 -25
  326. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +0 -25
  327. package/esm2015/src/module.js +0 -88
  328. package/esm2015/src/modules/ngxs-feature.module.js +0 -45
  329. package/esm2015/src/modules/ngxs-root.module.js +0 -41
  330. package/esm2015/src/operators/of-action.js +0 -102
  331. package/esm2015/src/plugin-manager.js +0 -37
  332. package/esm2015/src/plugin_api.js +0 -6
  333. package/esm2015/src/public_api.js +0 -27
  334. package/esm2015/src/public_to_deprecate.js +0 -14
  335. package/esm2015/src/selectors/create-model-selector.js +0 -30
  336. package/esm2015/src/selectors/create-pick-selector.js +0 -16
  337. package/esm2015/src/selectors/create-property-selectors.js +0 -20
  338. package/esm2015/src/selectors/create-selector.js +0 -9
  339. package/esm2015/src/selectors/selector-checks.util.js +0 -18
  340. package/esm2015/src/selectors/selector-metadata.js +0 -30
  341. package/esm2015/src/selectors/selector-models.js +0 -2
  342. package/esm2015/src/selectors/selector-types.util.js +0 -2
  343. package/esm2015/src/selectors/selector-utils.js +0 -74
  344. package/esm2015/src/state-token/state-token.js +0 -17
  345. package/esm2015/src/state-token/symbols.js +0 -2
  346. package/esm2015/src/store.js +0 -107
  347. package/esm2015/src/symbols.js +0 -58
  348. package/esm2015/src/utils/compose.js +0 -26
  349. package/esm2015/src/utils/store-validators.js +0 -25
  350. package/esm2015/src/utils/utils.js +0 -92
  351. package/fesm2015/ngxs-store-internals-testing.js.map +0 -1
  352. package/fesm2015/ngxs-store-internals.js +0 -101
  353. package/fesm2015/ngxs-store-internals.js.map +0 -1
  354. package/fesm2015/ngxs-store-operators.js.map +0 -1
  355. package/fesm2015/ngxs-store.js.map +0 -1
  356. package/internals/ngxs-bootstrapper.d.ts +0 -16
  357. package/internals/ngxs-store-internals.d.ts +0 -5
  358. package/internals/package.json +0 -10
  359. package/internals/src/symbols.d.ts +0 -7
  360. package/internals/testing/ngxs-store-internals-testing.d.ts +0 -5
  361. package/internals/testing/package.json +0 -10
  362. package/ngxs-store.d.ts +0 -5
  363. package/operators/ngxs-store-operators.d.ts +0 -5
  364. package/operators/package.json +0 -10
  365. package/src/internal/error-handler.d.ts +0 -26
  366. package/src/internal/state-stream.d.ts +0 -14
  367. package/src/public_to_deprecate.d.ts +0 -21
  368. package/src/state-token/state-token.d.ts +0 -7
  369. package/src/state-token/symbols.d.ts +0 -5
  370. /package/{esm2015/internals/ngxs-store-internals.js → esm2022/internals/ngxs-store-internals.mjs} +0 -0
  371. /package/{esm2015/internals/testing/ngxs-store-internals-testing.js → esm2022/internals/testing/ngxs-store-internals-testing.mjs} +0 -0
  372. /package/{esm2015/ngxs-store.js → esm2022/ngxs-store.mjs} +0 -0
  373. /package/{esm2015/operators/compose.js → esm2022/operators/compose.mjs} +0 -0
  374. /package/{esm2015/operators/index.js → esm2022/operators/index.mjs} +0 -0
  375. /package/{esm2015/operators/ngxs-store-operators.js → esm2022/operators/ngxs-store-operators.mjs} +0 -0
  376. /package/{esm2015/operators/types.js → esm2022/operators/types.mjs} +0 -0
  377. /package/{esm2015/operators/utils.js → esm2022/operators/utils.mjs} +0 -0
  378. /package/{esm2015/src/operators/leave-ngxs.js → esm2022/src/operators/leave-ngxs.mjs} +0 -0
  379. /package/{esm2015/src/selectors/index.js → esm2022/src/selectors/index.mjs} +0 -0
@@ -0,0 +1,311 @@
1
+ import { Injectable, Injector, Optional, SkipSelf, Inject, ɵisPromise, inject } from '@angular/core';
2
+ import { ɵmemoize, ɵMETA_KEY, ɵgetStoreMetadata, ɵINITIAL_STATE_TOKEN } from '@ngxs/store/internals';
3
+ import { getActionTypeFromInstance, getValue, setValue } from '@ngxs/store/plugins';
4
+ import { forkJoin, from, of, throwError, Subject, isObservable } from 'rxjs';
5
+ import { catchError, defaultIfEmpty, filter, map, mergeMap, shareReplay, takeUntil } from 'rxjs/operators';
6
+ import { NgxsConfig } from '../symbols';
7
+ import { buildGraph, findFullParentPath, nameToState, ɵPROP_GETTER, topologicalSort } from './internals';
8
+ import { ofActionDispatched } from '../operators/of-action';
9
+ import { InternalActions } from '../actions-stream';
10
+ import { InternalDispatchedActionResults } from '../internal/dispatcher';
11
+ import { StateContextFactory } from '../internal/state-context-factory';
12
+ import { ensureStateNameIsUnique, ensureStatesAreDecorated } from '../utils/store-validators';
13
+ import { ensureStateClassIsInjectable } from '../ivy/ivy-enabled-in-dev-mode';
14
+ import { NgxsUnhandledActionsLogger } from '../dev-features/ngxs-unhandled-actions-logger';
15
+ import { NgxsUnhandledErrorHandler } from '../ngxs-unhandled-error-handler';
16
+ import { assignUnhandledCallback } from './unhandled-rxjs-error-callback';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "../symbols";
19
+ import * as i2 from "../actions-stream";
20
+ import * as i3 from "../internal/dispatcher";
21
+ import * as i4 from "../internal/state-context-factory";
22
+ const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
23
+ function cloneDefaults(defaults) {
24
+ let value = defaults === undefined ? {} : defaults;
25
+ if (defaults) {
26
+ if (Array.isArray(defaults)) {
27
+ value = defaults.slice();
28
+ }
29
+ else if (typeof defaults === 'object') {
30
+ value = { ...defaults };
31
+ }
32
+ }
33
+ return value;
34
+ }
35
+ /**
36
+ * The `StateFactory` class adds root and feature states to the graph.
37
+ * This extracts state names from state classes, checks if they already
38
+ * exist in the global graph, throws errors if their names are invalid, etc.
39
+ * See its constructor, state factories inject state factories that are
40
+ * parent-level providers. This is required to get feature states from the
41
+ * injector on the same level.
42
+ *
43
+ * The `NgxsModule.forFeature(...)` returns `providers: [StateFactory, ...states]`.
44
+ * The `StateFactory` is initialized on the feature level and goes through `...states`
45
+ * to get them from the injector through `injector.get(state)`.
46
+ * @ignore
47
+ */
48
+ export class StateFactory {
49
+ constructor(_injector, _config, _parentFactory, _actions, _actionResults, _stateContextFactory, _initialState) {
50
+ this._injector = _injector;
51
+ this._config = _config;
52
+ this._parentFactory = _parentFactory;
53
+ this._actions = _actions;
54
+ this._actionResults = _actionResults;
55
+ this._stateContextFactory = _stateContextFactory;
56
+ this._initialState = _initialState;
57
+ this._actionsSubscription = null;
58
+ this._propGetter = inject(ɵPROP_GETTER);
59
+ this._ngxsUnhandledErrorHandler = null;
60
+ this._states = [];
61
+ this._statesByName = {};
62
+ this._statePaths = {};
63
+ this.getRuntimeSelectorContext = ɵmemoize(() => {
64
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
65
+ const stateFactory = this;
66
+ const propGetter = stateFactory._propGetter;
67
+ function resolveGetter(key) {
68
+ const path = stateFactory.statePaths[key];
69
+ return path ? propGetter(path.split('.')) : null;
70
+ }
71
+ const context = this._parentFactory
72
+ ? this._parentFactory.getRuntimeSelectorContext()
73
+ : {
74
+ getStateGetter(key) {
75
+ // Use `@__INLINE__` annotation to forcely inline `resolveGetter`.
76
+ // This is a Terser annotation, which will function only in the production mode.
77
+ let getter = /*@__INLINE__*/ resolveGetter(key);
78
+ if (getter) {
79
+ return getter;
80
+ }
81
+ return (...args) => {
82
+ // Late loaded getter
83
+ if (!getter) {
84
+ getter = /*@__INLINE__*/ resolveGetter(key);
85
+ }
86
+ return getter ? getter(...args) : undefined;
87
+ };
88
+ },
89
+ getSelectorOptions(localOptions) {
90
+ const globalSelectorOptions = stateFactory._config.selectorOptions;
91
+ return {
92
+ ...globalSelectorOptions,
93
+ ...(localOptions || {})
94
+ };
95
+ }
96
+ };
97
+ return context;
98
+ });
99
+ }
100
+ get states() {
101
+ return this._parentFactory ? this._parentFactory.states : this._states;
102
+ }
103
+ get statesByName() {
104
+ return this._parentFactory ? this._parentFactory.statesByName : this._statesByName;
105
+ }
106
+ get statePaths() {
107
+ return this._parentFactory ? this._parentFactory.statePaths : this._statePaths;
108
+ }
109
+ ngOnDestroy() {
110
+ this._actionsSubscription?.unsubscribe();
111
+ }
112
+ /**
113
+ * Add a new state to the global defs.
114
+ */
115
+ add(stateClasses) {
116
+ if (NG_DEV_MODE) {
117
+ ensureStatesAreDecorated(stateClasses);
118
+ }
119
+ const { newStates } = this.addToStatesMap(stateClasses);
120
+ if (!newStates.length)
121
+ return [];
122
+ const stateGraph = buildGraph(newStates);
123
+ const sortedStates = topologicalSort(stateGraph);
124
+ const paths = findFullParentPath(stateGraph);
125
+ const nameGraph = nameToState(newStates);
126
+ const bootstrappedStores = [];
127
+ for (const name of sortedStates) {
128
+ const stateClass = nameGraph[name];
129
+ const path = paths[name];
130
+ const meta = stateClass[ɵMETA_KEY];
131
+ this.addRuntimeInfoToMeta(meta, path);
132
+ // Note: previously we called `ensureStateClassIsInjectable` within the
133
+ // `State` decorator. This check is moved here because the `ɵprov` property
134
+ // will not exist on the class in JIT mode (because it's set asynchronously
135
+ // during JIT compilation through `Object.defineProperty`).
136
+ if (NG_DEV_MODE) {
137
+ ensureStateClassIsInjectable(stateClass);
138
+ }
139
+ const stateMap = {
140
+ name,
141
+ path,
142
+ isInitialised: false,
143
+ actions: meta.actions,
144
+ instance: this._injector.get(stateClass),
145
+ defaults: cloneDefaults(meta.defaults)
146
+ };
147
+ // ensure our store hasn't already been added
148
+ // but don't throw since it could be lazy
149
+ // loaded from different paths
150
+ if (!this.hasBeenMountedAndBootstrapped(name, path)) {
151
+ bootstrappedStores.push(stateMap);
152
+ }
153
+ this.states.push(stateMap);
154
+ }
155
+ return bootstrappedStores;
156
+ }
157
+ /**
158
+ * Add a set of states to the store and return the defaults
159
+ */
160
+ addAndReturnDefaults(stateClasses) {
161
+ const classes = stateClasses || [];
162
+ const mappedStores = this.add(classes);
163
+ const defaults = mappedStores.reduce((result, mappedStore) => setValue(result, mappedStore.path, mappedStore.defaults), {});
164
+ return { defaults, states: mappedStores };
165
+ }
166
+ connectActionHandlers() {
167
+ // Note: We have to connect actions only once when the `StateFactory`
168
+ // is being created for the first time. This checks if we're in
169
+ // a child state factory and the parent state factory already exists.
170
+ if (this._parentFactory || this._actionsSubscription !== null) {
171
+ return;
172
+ }
173
+ const dispatched$ = new Subject();
174
+ this._actionsSubscription = this._actions
175
+ .pipe(filter((ctx) => ctx.status === "DISPATCHED" /* ActionStatus.Dispatched */), mergeMap(ctx => {
176
+ dispatched$.next(ctx);
177
+ const action = ctx.action;
178
+ return this.invokeActions(dispatched$, action).pipe(map(() => ({ action, status: "SUCCESSFUL" /* ActionStatus.Successful */ })), defaultIfEmpty({ action, status: "CANCELED" /* ActionStatus.Canceled */ }), catchError(error => {
179
+ const ngxsUnhandledErrorHandler = (this._ngxsUnhandledErrorHandler ||=
180
+ this._injector.get(NgxsUnhandledErrorHandler));
181
+ const handleableError = assignUnhandledCallback(error, () => ngxsUnhandledErrorHandler.handleError(error, { action }));
182
+ return of({
183
+ action,
184
+ status: "ERRORED" /* ActionStatus.Errored */,
185
+ error: handleableError
186
+ });
187
+ }));
188
+ }))
189
+ .subscribe(ctx => this._actionResults.next(ctx));
190
+ }
191
+ /**
192
+ * Invoke actions on the states.
193
+ */
194
+ invokeActions(dispatched$, action) {
195
+ const type = getActionTypeFromInstance(action);
196
+ const results = [];
197
+ // Determines whether the dispatched action has been handled, this is assigned
198
+ // to `true` within the below `for` loop if any `actionMetas` has been found.
199
+ let actionHasBeenHandled = false;
200
+ for (const metadata of this.states) {
201
+ const actionMetas = metadata.actions[type];
202
+ if (actionMetas) {
203
+ for (const actionMeta of actionMetas) {
204
+ const stateContext = this._stateContextFactory.createStateContext(metadata);
205
+ try {
206
+ let result = metadata.instance[actionMeta.fn](stateContext, action);
207
+ // We need to use `isPromise` instead of checking whether
208
+ // `result instanceof Promise`. In zone.js patched environments, `global.Promise`
209
+ // is the `ZoneAwarePromise`. Some APIs, which are likely not patched by zone.js
210
+ // for certain reasons, might not work with `instanceof`. For instance, the dynamic
211
+ // import returns a native promise (not a `ZoneAwarePromise`), causing this check to
212
+ // be falsy.
213
+ if (ɵisPromise(result)) {
214
+ result = from(result);
215
+ }
216
+ if (isObservable(result)) {
217
+ // If this observable has been completed w/o emitting
218
+ // any value then we wouldn't want to complete the whole chain
219
+ // of actions. Since if any observable completes then
220
+ // action will be canceled.
221
+ // For instance if any action handler would've had such statement:
222
+ // `handler(ctx) { return EMPTY; }`
223
+ // then the action will be canceled.
224
+ // See https://github.com/ngxs/store/issues/1568
225
+ result = result.pipe(mergeMap((value) => {
226
+ if (ɵisPromise(value)) {
227
+ return from(value);
228
+ }
229
+ if (isObservable(value)) {
230
+ return value;
231
+ }
232
+ return of(value);
233
+ }), defaultIfEmpty({}));
234
+ if (actionMeta.options.cancelUncompleted) {
235
+ // todo: ofActionDispatched should be used with action class
236
+ result = result.pipe(takeUntil(dispatched$.pipe(ofActionDispatched(action))));
237
+ }
238
+ }
239
+ else {
240
+ result = of({}).pipe(shareReplay());
241
+ }
242
+ results.push(result);
243
+ }
244
+ catch (e) {
245
+ results.push(throwError(e));
246
+ }
247
+ actionHasBeenHandled = true;
248
+ }
249
+ }
250
+ }
251
+ // The `NgxsUnhandledActionsLogger` is a tree-shakable class which functions
252
+ // only during development.
253
+ if (NG_DEV_MODE && !actionHasBeenHandled) {
254
+ const unhandledActionsLogger = this._injector.get(NgxsUnhandledActionsLogger, null);
255
+ // The `NgxsUnhandledActionsLogger` will not be resolved by the injector if the
256
+ // `NgxsDevelopmentModule` is not provided. It's enough to check whether the `injector.get`
257
+ // didn't return `null` so we may ensure the module has been imported.
258
+ if (unhandledActionsLogger) {
259
+ unhandledActionsLogger.warn(action);
260
+ }
261
+ }
262
+ if (!results.length) {
263
+ results.push(of({}));
264
+ }
265
+ return forkJoin(results);
266
+ }
267
+ addToStatesMap(stateClasses) {
268
+ const newStates = [];
269
+ const statesMap = this.statesByName;
270
+ for (const stateClass of stateClasses) {
271
+ const stateName = ɵgetStoreMetadata(stateClass).name;
272
+ if (NG_DEV_MODE) {
273
+ ensureStateNameIsUnique(stateName, stateClass, statesMap);
274
+ }
275
+ const unmountedState = !statesMap[stateName];
276
+ if (unmountedState) {
277
+ newStates.push(stateClass);
278
+ statesMap[stateName] = stateClass;
279
+ }
280
+ }
281
+ return { newStates };
282
+ }
283
+ addRuntimeInfoToMeta(meta, path) {
284
+ this.statePaths[meta.name] = path;
285
+ // TODO: v4 - we plan to get rid of the path property because it is non-deterministic
286
+ // we can do this when we get rid of the incorrectly exposed getStoreMetadata
287
+ // We will need to come up with an alternative in v4 because this is used by many plugins
288
+ meta.path = path;
289
+ }
290
+ hasBeenMountedAndBootstrapped(name, path) {
291
+ const valueIsBootstrappedInInitialState = getValue(this._initialState, path) !== undefined;
292
+ // This checks whether a state has been already added to the global graph and
293
+ // its lifecycle is in 'bootstrapped' state.
294
+ return this.statesByName[name] && valueIsBootstrappedInInitialState;
295
+ }
296
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StateFactory, deps: [{ token: i0.Injector }, { token: i1.NgxsConfig }, { token: StateFactory, optional: true, skipSelf: true }, { token: i2.InternalActions }, { token: i3.InternalDispatchedActionResults }, { token: i4.StateContextFactory }, { token: ɵINITIAL_STATE_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
297
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StateFactory }); }
298
+ }
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StateFactory, decorators: [{
300
+ type: Injectable
301
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.NgxsConfig }, { type: StateFactory, decorators: [{
302
+ type: Optional
303
+ }, {
304
+ type: SkipSelf
305
+ }] }, { type: i2.InternalActions }, { type: i3.InternalDispatchedActionResults }, { type: i4.StateContextFactory }, { type: undefined, decorators: [{
306
+ type: Optional
307
+ }, {
308
+ type: Inject,
309
+ args: [ɵINITIAL_STATE_TOKEN]
310
+ }] }] });
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUVOLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBR1QsaUJBQWlCLEVBRWpCLG9CQUFvQixFQUdyQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBRUosRUFBRSxFQUNGLFVBQVUsRUFFVixPQUFPLEVBQ1AsWUFBWSxFQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixjQUFjLEVBQ2QsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsRUFFbEIsV0FBVyxFQUNYLFlBQVksRUFJWixlQUFlLEVBQ2hCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBK0IsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUs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QyxHQUFHLElBQUksQ0FBQztRQUNuQyxxRkFBcUY7UUFDckYsNkVBQTZFO1FBQzdFLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU8sNkJBQTZCLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDOUQsTUFBTSxpQ0FBaUMsR0FDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO1FBQ25ELDZFQUE2RTtRQUM3RSw0Q0FBNEM7UUFDNUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLGlDQUFpQyxDQUFDO0lBQ3RFLENBQUM7aUlBelRVLFlBQVksOE9BaUJiLG9CQUFvQjtxSUFqQm5CLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7OzBCQVdOLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUtSLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIMm1aXNQcm9taXNlLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICDJtW1lbW9pemUsXG4gIMm1TUVUQV9LRVksXG4gIMm1UGxhaW5PYmplY3RPZixcbiAgybVNZXRhRGF0YU1vZGVsLFxuICDJtWdldFN0b3JlTWV0YWRhdGEsXG4gIMm1U3RhdGVDbGFzc0ludGVybmFsLFxuICDJtUlOSVRJQUxfU1RBVEVfVE9LRU4sXG4gIMm1U2hhcmVkU2VsZWN0b3JPcHRpb25zLFxuICDJtVJ1bnRpbWVTZWxlY3RvckNvbnRleHRcbn0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGdldFZhbHVlLCBzZXRWYWx1ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL3BsdWdpbnMnO1xuaW1wb3J0IHtcbiAgZm9ya0pvaW4sXG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICB0aHJvd0Vycm9yLFxuICBTdWJzY3JpcHRpb24sXG4gIFN1YmplY3QsXG4gIGlzT2JzZXJ2YWJsZVxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGRlZmF1bHRJZkVtcHR5LFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgbWVyZ2VNYXAsXG4gIHNoYXJlUmVwbGF5LFxuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQge1xuICBidWlsZEdyYXBoLFxuICBmaW5kRnVsbFBhcmVudFBhdGgsXG4gIE1hcHBlZFN0b3JlLFxuICBuYW1lVG9TdGF0ZSxcbiAgybVQUk9QX0dFVFRFUixcbiAgU3RhdGVLZXlHcmFwaCxcbiAgU3RhdGVzQW5kRGVmYXVsdHMsXG4gIFN0YXRlc0J5TmFtZSxcbiAgdG9wb2xvZ2ljYWxTb3J0XG59IGZyb20gJy4vaW50ZXJuYWxzJztcbmltcG9ydCB7IG9mQWN0aW9uRGlzcGF0Y2hlZCB9IGZyb20gJy4uL29wZXJhdG9ycy9vZi1hY3Rpb24nO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dCwgQWN0aW9uU3RhdHVzLCBJbnRlcm5hbEFjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zLXN0cmVhbSc7XG5pbXBvcnQgeyBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzIH0gZnJvbSAnLi4vaW50ZXJuYWwvZGlzcGF0Y2hlcic7XG5pbXBvcnQgeyBTdGF0ZUNvbnRleHRGYWN0b3J5IH0gZnJvbSAnLi4vaW50ZXJuYWwvc3RhdGUtY29udGV4dC1mYWN0b3J5JztcbmltcG9ydCB7IGVuc3VyZVN0YXRlTmFtZUlzVW5pcXVlLCBlbnN1cmVTdGF0ZXNBcmVEZWNvcmF0ZWQgfSBmcm9tICcuLi91dGlscy9zdG9yZS12YWxpZGF0b3JzJztcbmltcG9ydCB7IGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUgfSBmcm9tICcuLi9pdnkvaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUnO1xuaW1wb3J0IHsgTmd4c1VuaGFuZGxlZEFjdGlvbnNMb2dnZXIgfSBmcm9tICcuLi9kZXYtZmVhdHVyZXMvbmd4cy11bmhhbmRsZWQtYWN0aW9ucy1sb2dnZXInO1xuaW1wb3J0IHsgTmd4c1VuaGFuZGxlZEVycm9ySGFuZGxlciB9IGZyb20gJy4uL25neHMtdW5oYW5kbGVkLWVycm9yLWhhbmRsZXInO1xuaW1wb3J0IHsgYXNzaWduVW5oYW5kbGVkQ2FsbGJhY2sgfSBmcm9tICcuL3VuaGFuZGxlZC1yeGpzLWVycm9yLWNhbGxiYWNrJztcblxuY29uc3QgTkdfREVWX01PREUgPSB0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGU7XG5cbmZ1bmN0aW9uIGNsb25lRGVmYXVsdHMoZGVmYXVsdHM6IGFueSk6IGFueSB7XG4gIGxldCB2YWx1ZSA9IGRlZmF1bHRzID09PSB1bmRlZmluZWQgPyB7fSA6IGRlZmF1bHRzO1xuXG4gIGlmIChkZWZhdWx0cykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGRlZmF1bHRzKSkge1xuICAgICAgdmFsdWUgPSBkZWZhdWx0cy5zbGljZSgpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmF1bHRzID09PSAnb2JqZWN0Jykge1xuICAgICAgdmFsdWUgPSB7IC4uLmRlZmF1bHRzIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFRoZSBgU3RhdGVGYWN0b3J5YCBjbGFzcyBhZGRzIHJvb3QgYW5kIGZlYXR1cmUgc3RhdGVzIHRvIHRoZSBncmFwaC5cbiAqIFRoaXMgZXh0cmFjdHMgc3RhdGUgbmFtZXMgZnJvbSBzdGF0ZSBjbGFzc2VzLCBjaGVja3MgaWYgdGhleSBhbHJlYWR5XG4gKiBleGlzdCBpbiB0aGUgZ2xvYmFsIGdyYXBoLCB0aHJvd3MgZXJyb3JzIGlmIHRoZWlyIG5hbWVzIGFyZSBpbnZhbGlkLCBldGMuXG4gKiBTZWUgaXRzIGNvbnN0cnVjdG9yLCBzdGF0ZSBmYWN0b3JpZXMgaW5qZWN0IHN0YXRlIGZhY3RvcmllcyB0aGF0IGFyZVxuICogcGFyZW50LWxldmVsIHByb3ZpZGVycy4gVGhpcyBpcyByZXF1aXJlZCB0byBnZXQgZmVhdHVyZSBzdGF0ZXMgZnJvbSB0aGVcbiAqIGluamVjdG9yIG9uIHRoZSBzYW1lIGxldmVsLlxuICpcbiAqIFRoZSBgTmd4c01vZHVsZS5mb3JGZWF0dXJlKC4uLilgIHJldHVybnMgYHByb3ZpZGVyczogW1N0YXRlRmFjdG9yeSwgLi4uc3RhdGVzXWAuXG4gKiBUaGUgYFN0YXRlRmFjdG9yeWAgaXMgaW5pdGlhbGl6ZWQgb24gdGhlIGZlYXR1cmUgbGV2ZWwgYW5kIGdvZXMgdGhyb3VnaCBgLi4uc3RhdGVzYFxuICogdG8gZ2V0IHRoZW0gZnJvbSB0aGUgaW5qZWN0b3IgdGhyb3VnaCBgaW5qZWN0b3IuZ2V0KHN0YXRlKWAuXG4gKiBAaWdub3JlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdGF0ZUZhY3RvcnkgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9hY3Rpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9wcm9wR2V0dGVyID0gaW5qZWN0KMm1UFJPUF9HRVRURVIpO1xuXG4gIHByaXZhdGUgX25neHNVbmhhbmRsZWRFcnJvckhhbmRsZXI6IE5neHNVbmhhbmRsZWRFcnJvckhhbmRsZXIgPSBudWxsITtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBOZ3hzQ29uZmlnLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQFNraXBTZWxmKClcbiAgICBwcml2YXRlIF9wYXJlbnRGYWN0b3J5OiBTdGF0ZUZhY3RvcnksXG4gICAgcHJpdmF0ZSBfYWN0aW9uczogSW50ZXJuYWxBY3Rpb25zLFxuICAgIHByaXZhdGUgX2FjdGlvblJlc3VsdHM6IEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMsXG4gICAgcHJpdmF0ZSBfc3RhdGVDb250ZXh0RmFjdG9yeTogU3RhdGVDb250ZXh0RmFjdG9yeSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoybVJTklUSUFMX1NUQVRFX1RPS0VOKVxuICAgIHByaXZhdGUgX2luaXRpYWxTdGF0ZTogYW55XG4gICkge31cblxuICBwcml2YXRlIF9zdGF0ZXM6IE1hcHBlZFN0b3JlW10gPSBbXTtcblxuICBnZXQgc3RhdGVzKCk6IE1hcHBlZFN0b3JlW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRGYWN0b3J5ID8gdGhpcy5fcGFyZW50RmFjdG9yeS5zdGF0ZXMgOiB0aGlzLl9zdGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIF9zdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZSA9IHt9O1xuXG4gIGdldCBzdGF0ZXNCeU5hbWUoKTogU3RhdGVzQnlOYW1lIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RmFjdG9yeSA/IHRoaXMuX3BhcmVudEZhY3Rvcnkuc3RhdGVzQnlOYW1lIDogdGhpcy5fc3RhdGVzQnlOYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3RhdGVQYXRoczogybVQbGFpbk9iamVjdE9mPHN0cmluZz4gPSB7fTtcblxuICBwcml2YXRlIGdldCBzdGF0ZVBhdGhzKCk6IMm1UGxhaW5PYmplY3RPZjxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RmFjdG9yeSA/IHRoaXMuX3BhcmVudEZhY3Rvcnkuc3RhdGVQYXRocyA6IHRoaXMuX3N0YXRlUGF0aHM7XG4gIH1cblxuICBnZXRSdW50aW1lU2VsZWN0b3JDb250ZXh0ID0gybVtZW1vaXplKCgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzdGF0ZUZhY3RvcnkgPSB0aGlzO1xuICAgIGNvbnN0IHByb3BHZXR0ZXIgPSBzdGF0ZUZhY3RvcnkuX3Byb3BHZXR0ZXI7XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlR2V0dGVyKGtleTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBwYXRoID0gc3RhdGVGYWN0b3J5LnN0YXRlUGF0aHNba2V5XTtcbiAgICAgIHJldHVybiBwYXRoID8gcHJvcEdldHRlcihwYXRoLnNwbGl0KCcuJykpIDogbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0OiDJtVJ1bnRpbWVTZWxlY3RvckNvbnRleHQgPSB0aGlzLl9wYXJlbnRGYWN0b3J5XG4gICAgICA/IHRoaXMuX3BhcmVudEZhY3RvcnkuZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCgpXG4gICAgICA6IHtcbiAgICAgICAgICBnZXRTdGF0ZUdldHRlcihrZXk6IHN0cmluZykge1xuICAgICAgICAgICAgLy8gVXNlIGBAX19JTkxJTkVfX2AgYW5ub3RhdGlvbiB0byBmb3JjZWx5IGlubGluZSBgcmVzb2x2ZUdldHRlcmAuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgVGVyc2VyIGFubm90YXRpb24sIHdoaWNoIHdpbGwgZnVuY3Rpb24gb25seSBpbiB0aGUgcHJvZHVjdGlvbiBtb2RlLlxuICAgICAgICAgICAgbGV0IGdldHRlciA9IC8qQF9fSU5MSU5FX18qLyByZXNvbHZlR2V0dGVyKGtleSk7XG4gICAgICAgICAgICBpZiAoZ2V0dGVyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXR0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgLy8gTGF0ZSBsb2FkZWQgZ2V0dGVyXG4gICAgICAgICAgICAgIGlmICghZ2V0dGVyKSB7XG4gICAgICAgICAgICAgICAgZ2V0dGVyID0gLypAX19JTkxJTkVfXyovIHJlc29sdmVHZXR0ZXIoa2V5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZ2V0dGVyID8gZ2V0dGVyKC4uLmFyZ3MpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldFNlbGVjdG9yT3B0aW9ucyhsb2NhbE9wdGlvbnM/OiDJtVNoYXJlZFNlbGVjdG9yT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZ2xvYmFsU2VsZWN0b3JPcHRpb25zID0gc3RhdGVGYWN0b3J5Ll9jb25maWcuc2VsZWN0b3JPcHRpb25zO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uZ2xvYmFsU2VsZWN0b3JPcHRpb25zLFxuICAgICAgICAgICAgICAuLi4obG9jYWxPcHRpb25zIHx8IHt9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0pO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGlvbnNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IHN0YXRlIHRvIHRoZSBnbG9iYWwgZGVmcy5cbiAgICovXG4gIGFkZChzdGF0ZUNsYXNzZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW10pOiBNYXBwZWRTdG9yZVtdIHtcbiAgICBpZiAoTkdfREVWX01PREUpIHtcbiAgICAgIGVuc3VyZVN0YXRlc0FyZURlY29yYXRlZChzdGF0ZUNsYXNzZXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbmV3U3RhdGVzIH0gPSB0aGlzLmFkZFRvU3RhdGVzTWFwKHN0YXRlQ2xhc3Nlcyk7XG4gICAgaWYgKCFuZXdTdGF0ZXMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICBjb25zdCBzdGF0ZUdyYXBoOiBTdGF0ZUtleUdyYXBoID0gYnVpbGRHcmFwaChuZXdTdGF0ZXMpO1xuICAgIGNvbnN0IHNvcnRlZFN0YXRlczogc3RyaW5nW10gPSB0b3BvbG9naWNhbFNvcnQoc3RhdGVHcmFwaCk7XG4gICAgY29uc3QgcGF0aHM6IMm1UGxhaW5PYmplY3RPZjxzdHJpbmc+ID0gZmluZEZ1bGxQYXJlbnRQYXRoKHN0YXRlR3JhcGgpO1xuICAgIGNvbnN0IG5hbWVHcmFwaDogybVQbGFpbk9iamVjdE9mPMm1U3RhdGVDbGFzc0ludGVybmFsPiA9IG5hbWVUb1N0YXRlKG5ld1N0YXRlcyk7XG4gICAgY29uc3QgYm9vdHN0cmFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2Ygc29ydGVkU3RhdGVzKSB7XG4gICAgICBjb25zdCBzdGF0ZUNsYXNzOiDJtVN0YXRlQ2xhc3NJbnRlcm5hbCA9IG5hbWVHcmFwaFtuYW1lXTtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IHBhdGhzW25hbWVdO1xuICAgICAgY29uc3QgbWV0YTogybVNZXRhRGF0YU1vZGVsID0gc3RhdGVDbGFzc1vJtU1FVEFfS0VZXSE7XG5cbiAgICAgIHRoaXMuYWRkUnVudGltZUluZm9Ub01ldGEobWV0YSwgcGF0aCk7XG5cbiAgICAgIC8vIE5vdGU6IHByZXZpb3VzbHkgd2UgY2FsbGVkIGBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlYCB3aXRoaW4gdGhlXG4gICAgICAvLyBgU3RhdGVgIGRlY29yYXRvci4gVGhpcyBjaGVjayBpcyBtb3ZlZCBoZXJlIGJlY2F1c2UgdGhlIGDJtXByb3ZgIHByb3BlcnR5XG4gICAgICAvLyB3aWxsIG5vdCBleGlzdCBvbiB0aGUgY2xhc3MgaW4gSklUIG1vZGUgKGJlY2F1c2UgaXQncyBzZXQgYXN5bmNocm9ub3VzbHlcbiAgICAgIC8vIGR1cmluZyBKSVQgY29tcGlsYXRpb24gdGhyb3VnaCBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCkuXG4gICAgICBpZiAoTkdfREVWX01PREUpIHtcbiAgICAgICAgZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZShzdGF0ZUNsYXNzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RhdGVNYXA6IE1hcHBlZFN0b3JlID0ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBwYXRoLFxuICAgICAgICBpc0luaXRpYWxpc2VkOiBmYWxzZSxcbiAgICAgICAgYWN0aW9uczogbWV0YS5hY3Rpb25zLFxuICAgICAgICBpbnN0YW5jZTogdGhpcy5faW5qZWN0b3IuZ2V0KHN0YXRlQ2xhc3MpLFxuICAgICAgICBkZWZhdWx0czogY2xvbmVEZWZhdWx0cyhtZXRhLmRlZmF1bHRzKVxuICAgICAgfTtcblxuICAgICAgLy8gZW5zdXJlIG91ciBzdG9yZSBoYXNuJ3QgYWxyZWFkeSBiZWVuIGFkZGVkXG4gICAgICAvLyBidXQgZG9uJ3QgdGhyb3cgc2luY2UgaXQgY291bGQgYmUgbGF6eVxuICAgICAgLy8gbG9hZGVkIGZyb20gZGlmZmVyZW50IHBhdGhzXG4gICAgICBpZiAoIXRoaXMuaGFzQmVlbk1vdW50ZWRBbmRCb290c3RyYXBwZWQobmFtZSwgcGF0aCkpIHtcbiAgICAgICAgYm9vdHN0cmFwcGVkU3RvcmVzLnB1c2goc3RhdGVNYXApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0YXRlcy5wdXNoKHN0YXRlTWFwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9vdHN0cmFwcGVkU3RvcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHNldCBvZiBzdGF0ZXMgdG8gdGhlIHN0b3JlIGFuZCByZXR1cm4gdGhlIGRlZmF1bHRzXG4gICAqL1xuICBhZGRBbmRSZXR1cm5EZWZhdWx0cyhzdGF0ZUNsYXNzZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW10pOiBTdGF0ZXNBbmREZWZhdWx0cyB7XG4gICAgY29uc3QgY2xhc3NlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IHN0YXRlQ2xhc3NlcyB8fCBbXTtcblxuICAgIGNvbnN0IG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSA9IHRoaXMuYWRkKGNsYXNzZXMpO1xuICAgIGNvbnN0IGRlZmF1bHRzID0gbWFwcGVkU3RvcmVzLnJlZHVjZShcbiAgICAgIChyZXN1bHQ6IGFueSwgbWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKSA9PlxuICAgICAgICBzZXRWYWx1ZShyZXN1bHQsIG1hcHBlZFN0b3JlLnBhdGgsIG1hcHBlZFN0b3JlLmRlZmF1bHRzKSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICByZXR1cm4geyBkZWZhdWx0cywgc3RhdGVzOiBtYXBwZWRTdG9yZXMgfTtcbiAgfVxuXG4gIGNvbm5lY3RBY3Rpb25IYW5kbGVycygpOiB2b2lkIHtcbiAgICAvLyBOb3RlOiBXZSBoYXZlIHRvIGNvbm5lY3QgYWN0aW9ucyBvbmx5IG9uY2Ugd2hlbiB0aGUgYFN0YXRlRmFjdG9yeWBcbiAgICAvLyAgICAgICBpcyBiZWluZyBjcmVhdGVkIGZvciB0aGUgZmlyc3QgdGltZS4gVGhpcyBjaGVja3MgaWYgd2UncmUgaW5cbiAgICAvLyAgICAgICBhIGNoaWxkIHN0YXRlIGZhY3RvcnkgYW5kIHRoZSBwYXJlbnQgc3RhdGUgZmFjdG9yeSBhbHJlYWR5IGV4aXN0cy5cbiAgICBpZiAodGhpcy5fcGFyZW50RmFjdG9yeSB8fCB0aGlzLl9hY3Rpb25zU3Vic2NyaXB0aW9uICE9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGlzcGF0Y2hlZCQgPSBuZXcgU3ViamVjdDxBY3Rpb25Db250ZXh0PigpO1xuICAgIHRoaXMuX2FjdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLl9hY3Rpb25zXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChjdHg6IEFjdGlvbkNvbnRleHQpID0+IGN0eC5zdGF0dXMgPT09IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkKSxcbiAgICAgICAgbWVyZ2VNYXAoY3R4ID0+IHtcbiAgICAgICAgICBkaXNwYXRjaGVkJC5uZXh0KGN0eCk7XG4gICAgICAgICAgY29uc3QgYWN0aW9uOiBhbnkgPSBjdHguYWN0aW9uO1xuICAgICAgICAgIHJldHVybiB0aGlzLmludm9rZUFjdGlvbnMoZGlzcGF0Y2hlZCQsIGFjdGlvbiEpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwgfSksXG4gICAgICAgICAgICBkZWZhdWx0SWZFbXB0eSg8QWN0aW9uQ29udGV4dD57IGFjdGlvbiwgc3RhdHVzOiBBY3Rpb25TdGF0dXMuQ2FuY2VsZWQgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgbmd4c1VuaGFuZGxlZEVycm9ySGFuZGxlciA9ICh0aGlzLl9uZ3hzVW5oYW5kbGVkRXJyb3JIYW5kbGVyIHx8PVxuICAgICAgICAgICAgICAgIHRoaXMuX2luamVjdG9yLmdldChOZ3hzVW5oYW5kbGVkRXJyb3JIYW5kbGVyKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGhhbmRsZWFibGVFcnJvciA9IGFzc2lnblVuaGFuZGxlZENhbGxiYWNrKGVycm9yLCAoKSA9PlxuICAgICAgICAgICAgICAgIG5neHNVbmhhbmRsZWRFcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IsIHsgYWN0aW9uIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBvZig8QWN0aW9uQ29udGV4dD57XG4gICAgICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgICAgIHN0YXR1czogQWN0aW9uU3RhdHVzLkVycm9yZWQsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGhhbmRsZWFibGVFcnJvclxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoY3R4ID0+IHRoaXMuX2FjdGlvblJlc3VsdHMubmV4dChjdHgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgYWN0aW9ucyBvbiB0aGUgc3RhdGVzLlxuICAgKi9cbiAgaW52b2tlQWN0aW9ucyhkaXNwYXRjaGVkJDogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0PiwgYWN0aW9uOiBhbnkpIHtcbiAgICBjb25zdCB0eXBlID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24pITtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGRpc3BhdGNoZWQgYWN0aW9uIGhhcyBiZWVuIGhhbmRsZWQsIHRoaXMgaXMgYXNzaWduZWRcbiAgICAvLyB0byBgdHJ1ZWAgd2l0aGluIHRoZSBiZWxvdyBgZm9yYCBsb29wIGlmIGFueSBgYWN0aW9uTWV0YXNgIGhhcyBiZWVuIGZvdW5kLlxuICAgIGxldCBhY3Rpb25IYXNCZWVuSGFuZGxlZCA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiB0aGlzLnN0YXRlcykge1xuICAgICAgY29uc3QgYWN0aW9uTWV0YXMgPSBtZXRhZGF0YS5hY3Rpb25zW3R5cGVdO1xuXG4gICAgICBpZiAoYWN0aW9uTWV0YXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb25NZXRhIG9mIGFjdGlvbk1ldGFzKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVDb250ZXh0ID0gdGhpcy5fc3RhdGVDb250ZXh0RmFjdG9yeS5jcmVhdGVTdGF0ZUNvbnRleHQobWV0YWRhdGEpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gbWV0YWRhdGEuaW5zdGFuY2VbYWN0aW9uTWV0YS5mbl0oc3RhdGVDb250ZXh0LCBhY3Rpb24pO1xuXG4gICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHVzZSBgaXNQcm9taXNlYCBpbnN0ZWFkIG9mIGNoZWNraW5nIHdoZXRoZXJcbiAgICAgICAgICAgIC8vIGByZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlYC4gSW4gem9uZS5qcyBwYXRjaGVkIGVudmlyb25tZW50cywgYGdsb2JhbC5Qcm9taXNlYFxuICAgICAgICAgICAgLy8gaXMgdGhlIGBab25lQXdhcmVQcm9taXNlYC4gU29tZSBBUElzLCB3aGljaCBhcmUgbGlrZWx5IG5vdCBwYXRjaGVkIGJ5IHpvbmUuanNcbiAgICAgICAgICAgIC8vIGZvciBjZXJ0YWluIHJlYXNvbnMsIG1pZ2h0IG5vdCB3b3JrIHdpdGggYGluc3RhbmNlb2ZgLiBGb3IgaW5zdGFuY2UsIHRoZSBkeW5hbWljXG4gICAgICAgICAgICAvLyBpbXBvcnQgcmV0dXJucyBhIG5hdGl2ZSBwcm9taXNlIChub3QgYSBgWm9uZUF3YXJlUHJvbWlzZWApLCBjYXVzaW5nIHRoaXMgY2hlY2sgdG9cbiAgICAgICAgICAgIC8vIGJlIGZhbHN5LlxuICAgICAgICAgICAgaWYgKMm1aXNQcm9taXNlKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0ID0gZnJvbShyZXN1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgLy8gSWYgdGhpcyBvYnNlcnZhYmxlIGhhcyBiZWVuIGNvbXBsZXRlZCB3L28gZW1pdHRpbmdcbiAgICAgICAgICAgICAgLy8gYW55IHZhbHVlIHRoZW4gd2Ugd291bGRuJ3Qgd2FudCB0byBjb21wbGV0ZSB0aGUgd2hvbGUgY2hhaW5cbiAgICAgICAgICAgICAgLy8gb2YgYWN0aW9ucy4gU2luY2UgaWYgYW55IG9ic2VydmFibGUgY29tcGxldGVzIHRoZW5cbiAgICAgICAgICAgICAgLy8gYWN0aW9uIHdpbGwgYmUgY2FuY2VsZWQuXG4gICAgICAgICAgICAgIC8vIEZvciBpbnN0YW5jZSBpZiBhbnkgYWN0aW9uIGhhbmRsZXIgd291bGQndmUgaGFkIHN1Y2ggc3RhdGVtZW50OlxuICAgICAgICAgICAgICAvLyBgaGFuZGxlcihjdHgpIHsgcmV0dXJuIEVNUFRZOyB9YFxuICAgICAgICAgICAgICAvLyB0aGVuIHRoZSBhY3Rpb24gd2lsbCBiZSBjYW5jZWxlZC5cbiAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2lzc3Vlcy8xNTY4XG4gICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5waXBlKFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoybVpc1Byb21pc2UodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChpc09ic2VydmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBvZih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZGVmYXVsdElmRW1wdHkoe30pXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgaWYgKGFjdGlvbk1ldGEub3B0aW9ucy5jYW5jZWxVbmNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgIC8vIHRvZG86IG9mQWN0aW9uRGlzcGF0Y2hlZCBzaG91bGQgYmUgdXNlZCB3aXRoIGFjdGlvbiBjbGFzc1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKGRpc3BhdGNoZWQkLnBpcGUob2ZBY3Rpb25EaXNwYXRjaGVkKGFjdGlvbiBhcyBhbnkpKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXN1bHQgPSBvZih7fSkucGlwZShzaGFyZVJlcGxheSgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHRocm93RXJyb3IoZSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGFjdGlvbkhhc0JlZW5IYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBgTmd4c1VuaGFuZGxlZEFjdGlvbnNMb2dnZXJgIGlzIGEgdHJlZS1zaGFrYWJsZSBjbGFzcyB3aGljaCBmdW5jdGlvbnNcbiAgICAvLyBvbmx5IGR1cmluZyBkZXZlbG9wbWVudC5cbiAgICBpZiAoTkdfREVWX01PREUgJiYgIWFjdGlvbkhhc0JlZW5IYW5kbGVkKSB7XG4gICAgICBjb25zdCB1bmhhbmRsZWRBY3Rpb25zTG9nZ2VyID0gdGhpcy5faW5qZWN0b3IuZ2V0KE5neHNVbmhhbmRsZWRBY3Rpb25zTG9nZ2VyLCBudWxsKTtcbiAgICAgIC8vIFRoZSBgTmd4c1VuaGFuZGxlZEFjdGlvbnNMb2dnZXJgIHdpbGwgbm90IGJlIHJlc29sdmVkIGJ5IHRoZSBpbmplY3RvciBpZiB0aGVcbiAgICAgIC8vIGBOZ3hzRGV2ZWxvcG1lbnRNb2R1bGVgIGlzIG5vdCBwcm92aWRlZC4gSXQncyBlbm91Z2ggdG8gY2hlY2sgd2hldGhlciB0aGUgYGluamVjdG9yLmdldGBcbiAgICAgIC8vIGRpZG4ndCByZXR1cm4gYG51bGxgIHNvIHdlIG1heSBlbnN1cmUgdGhlIG1vZHVsZSBoYXMgYmVlbiBpbXBvcnRlZC5cbiAgICAgIGlmICh1bmhhbmRsZWRBY3Rpb25zTG9nZ2VyKSB7XG4gICAgICAgIHVuaGFuZGxlZEFjdGlvbnNMb2dnZXIud2FybihhY3Rpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcmVzdWx0cy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdHMucHVzaChvZih7fSkpO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JrSm9pbihyZXN1bHRzKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVG9TdGF0ZXNNYXAoc3RhdGVDbGFzc2VzOiDJtVN0YXRlQ2xhc3NJbnRlcm5hbFtdKToge1xuICAgIG5ld1N0YXRlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXTtcbiAgfSB7XG4gICAgY29uc3QgbmV3U3RhdGVzOiDJtVN0YXRlQ2xhc3NJbnRlcm5hbFtdID0gW107XG4gICAgY29uc3Qgc3RhdGVzTWFwOiBTdGF0ZXNCeU5hbWUgPSB0aGlzLnN0YXRlc0J5TmFtZTtcblxuICAgIGZvciAoY29uc3Qgc3RhdGVDbGFzcyBvZiBzdGF0ZUNsYXNzZXMpIHtcbiAgICAgIGNvbnN0IHN0YXRlTmFtZSA9IMm1Z2V0U3RvcmVNZXRhZGF0YShzdGF0ZUNsYXNzKS5uYW1lITtcbiAgICAgIGlmIChOR19ERVZfTU9ERSkge1xuICAgICAgICBlbnN1cmVTdGF0ZU5hbWVJc1VuaXF1ZShzdGF0ZU5hbWUsIHN0YXRlQ2xhc3MsIHN0YXRlc01hcCk7XG4gICAgICB9XG4gICAgICBjb25zdCB1bm1vdW50ZWRTdGF0ZSA9ICFzdGF0ZXNNYXBbc3RhdGVOYW1lXTtcbiAgICAgIGlmICh1bm1vdW50ZWRTdGF0ZSkge1xuICAgICAgICBuZXdTdGF0ZXMucHVzaChzdGF0ZUNsYXNzKTtcbiAgICAgICAgc3RhdGVzTWFwW3N0YXRlTmFtZV0gPSBzdGF0ZUNsYXNzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IG5ld1N0YXRlcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRSdW50aW1lSW5mb1RvTWV0YShtZXRhOiDJtU1ldGFEYXRhTW9kZWwsIHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVQYXRoc1ttZXRhLm5hbWUhXSA9IHBhdGg7XG4gICAgLy8gVE9ETzogdjQgLSB3ZSBwbGFuIHRvIGdldCByaWQgb2YgdGhlIHBhdGggcHJvcGVydHkgYmVjYXVzZSBpdCBpcyBub24tZGV0ZXJtaW5pc3RpY1xuICAgIC8vIHdlIGNhbiBkbyB0aGlzIHdoZW4gd2UgZ2V0IHJpZCBvZiB0aGUgaW5jb3JyZWN0bHkgZXhwb3NlZCBnZXRTdG9yZU1ldGFkYXRhXG4gICAgLy8gV2Ugd2lsbCBuZWVkIHRvIGNvbWUgdXAgd2l0aCBhbiBhbHRlcm5hdGl2ZSBpbiB2NCBiZWNhdXNlIHRoaXMgaXMgdXNlZCBieSBtYW55IHBsdWdpbnNcbiAgICBtZXRhLnBhdGggPSBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNCZWVuTW91bnRlZEFuZEJvb3RzdHJhcHBlZChuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlSXNCb290c3RyYXBwZWRJbkluaXRpYWxTdGF0ZTogYm9vbGVhbiA9XG4gICAgICBnZXRWYWx1ZSh0aGlzLl9pbml0aWFsU3RhdGUsIHBhdGgpICE9PSB1bmRlZmluZWQ7XG4gICAgLy8gVGhpcyBjaGVja3Mgd2hldGhlciBhIHN0YXRlIGhhcyBiZWVuIGFscmVhZHkgYWRkZWQgdG8gdGhlIGdsb2JhbCBncmFwaCBhbmRcbiAgICAvLyBpdHMgbGlmZWN5Y2xlIGlzIGluICdib290c3RyYXBwZWQnIHN0YXRlLlxuICAgIHJldHVybiB0aGlzLnN0YXRlc0J5TmFtZVtuYW1lXSAmJiB2YWx1ZUlzQm9vdHN0cmFwcGVkSW5Jbml0aWFsU3RhdGU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,63 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ɵStateStream } from '@ngxs/store/internals';
3
+ import { InternalDispatcher } from '../internal/dispatcher';
4
+ import { NgxsConfig } from '../symbols';
5
+ import { deepFreeze } from '../utils/freeze';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngxs/store/internals";
8
+ import * as i2 from "../internal/dispatcher";
9
+ import * as i3 from "../symbols";
10
+ /**
11
+ * @ignore
12
+ */
13
+ export class InternalStateOperations {
14
+ constructor(_stateStream, _dispatcher, _config) {
15
+ this._stateStream = _stateStream;
16
+ this._dispatcher = _dispatcher;
17
+ this._config = _config;
18
+ }
19
+ /**
20
+ * Returns the root state operators.
21
+ */
22
+ getRootStateOperations() {
23
+ const rootStateOperations = {
24
+ getState: () => this._stateStream.getValue(),
25
+ setState: (newState) => this._stateStream.next(newState),
26
+ dispatch: (actionOrActions) => this._dispatcher.dispatch(actionOrActions)
27
+ };
28
+ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
29
+ return this._config.developmentMode
30
+ ? ensureStateAndActionsAreImmutable(rootStateOperations)
31
+ : rootStateOperations;
32
+ }
33
+ else {
34
+ return rootStateOperations;
35
+ }
36
+ }
37
+ setStateToTheCurrentWithNew(results) {
38
+ const stateOperations = this.getRootStateOperations();
39
+ // Get our current stream
40
+ const currentState = stateOperations.getState();
41
+ // Set the state to the current + new
42
+ stateOperations.setState({ ...currentState, ...results.defaults });
43
+ }
44
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InternalStateOperations, deps: [{ token: i1.ɵStateStream }, { token: i2.InternalDispatcher }, { token: i3.NgxsConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InternalStateOperations, providedIn: 'root' }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InternalStateOperations, decorators: [{
48
+ type: Injectable,
49
+ args: [{ providedIn: 'root' }]
50
+ }], ctorParameters: () => [{ type: i1.ɵStateStream }, { type: i2.InternalDispatcher }, { type: i3.NgxsConfig }] });
51
+ function ensureStateAndActionsAreImmutable(root) {
52
+ return {
53
+ getState: () => root.getState(),
54
+ setState: value => {
55
+ const frozenValue = deepFreeze(value);
56
+ return root.setState(frozenValue);
57
+ },
58
+ dispatch: actions => {
59
+ return root.dispatch(actions);
60
+ }
61
+ };
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtb3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUU3Qzs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDVSxZQUEwQixFQUMxQixXQUErQixFQUMvQixPQUFtQjtRQUZuQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUMxQixDQUFDO0lBRUo7O09BRUc7SUFDSCxzQkFBc0I7UUFDcEIsTUFBTSxtQkFBbUIsR0FBRztZQUMxQixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDNUMsUUFBUSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDN0QsUUFBUSxFQUFFLENBQUMsZUFBNEIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1NBQ3ZGLENBQUM7UUFFRixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZTtnQkFDakMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLG1CQUFtQixDQUFDO2dCQUN4RCxDQUFDLENBQUMsbUJBQW1CLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLG1CQUFtQixDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsMkJBQTJCLENBQUMsT0FBMEI7UUFDcEQsTUFBTSxlQUFlLEdBQXlCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRTVFLHlCQUF5QjtRQUN6QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEQscUNBQXFDO1FBQ3JDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7aUlBakNVLHVCQUF1QjtxSUFBdkIsdUJBQXVCLGNBRFYsTUFBTTs7MkZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBcUNsQyxTQUFTLGlDQUFpQyxDQUFDLElBQTBCO0lBQ25FLE9BQU87UUFDTCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUMvQixRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyDJtVN0YXRlU3RyZWFtIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgU3RhdGVPcGVyYXRpb25zLCBTdGF0ZXNBbmREZWZhdWx0cyB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBJbnRlcm5hbERpc3BhdGNoZXIgfSBmcm9tICcuLi9pbnRlcm5hbC9kaXNwYXRjaGVyJztcbmltcG9ydCB7IE5neHNDb25maWcgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IGRlZXBGcmVlemUgfSBmcm9tICcuLi91dGlscy9mcmVlemUnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiDJtVN0YXRlU3RyZWFtLFxuICAgIHByaXZhdGUgX2Rpc3BhdGNoZXI6IEludGVybmFsRGlzcGF0Y2hlcixcbiAgICBwcml2YXRlIF9jb25maWc6IE5neHNDb25maWdcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByb290IHN0YXRlIG9wZXJhdG9ycy5cbiAgICovXG4gIGdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKTogU3RhdGVPcGVyYXRpb25zPGFueT4ge1xuICAgIGNvbnN0IHJvb3RTdGF0ZU9wZXJhdGlvbnMgPSB7XG4gICAgICBnZXRTdGF0ZTogKCkgPT4gdGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKSxcbiAgICAgIHNldFN0YXRlOiAobmV3U3RhdGU6IGFueSkgPT4gdGhpcy5fc3RhdGVTdHJlYW0ubmV4dChuZXdTdGF0ZSksXG4gICAgICBkaXNwYXRjaDogKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pID0+IHRoaXMuX2Rpc3BhdGNoZXIuZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zKVxuICAgIH07XG5cbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmRldmVsb3BtZW50TW9kZVxuICAgICAgICA/IGVuc3VyZVN0YXRlQW5kQWN0aW9uc0FyZUltbXV0YWJsZShyb290U3RhdGVPcGVyYXRpb25zKVxuICAgICAgICA6IHJvb3RTdGF0ZU9wZXJhdGlvbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByb290U3RhdGVPcGVyYXRpb25zO1xuICAgIH1cbiAgfVxuXG4gIHNldFN0YXRlVG9UaGVDdXJyZW50V2l0aE5ldyhyZXN1bHRzOiBTdGF0ZXNBbmREZWZhdWx0cyk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXRlT3BlcmF0aW9uczogU3RhdGVPcGVyYXRpb25zPGFueT4gPSB0aGlzLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKTtcblxuICAgIC8vIEdldCBvdXIgY3VycmVudCBzdHJlYW1cbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBzdGF0ZU9wZXJhdGlvbnMuZ2V0U3RhdGUoKTtcbiAgICAvLyBTZXQgdGhlIHN0YXRlIHRvIHRoZSBjdXJyZW50ICsgbmV3XG4gICAgc3RhdGVPcGVyYXRpb25zLnNldFN0YXRlKHsgLi4uY3VycmVudFN0YXRlLCAuLi5yZXN1bHRzLmRlZmF1bHRzIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVuc3VyZVN0YXRlQW5kQWN0aW9uc0FyZUltbXV0YWJsZShyb290OiBTdGF0ZU9wZXJhdGlvbnM8YW55Pik6IFN0YXRlT3BlcmF0aW9uczxhbnk+IHtcbiAgcmV0dXJuIHtcbiAgICBnZXRTdGF0ZTogKCkgPT4gcm9vdC5nZXRTdGF0ZSgpLFxuICAgIHNldFN0YXRlOiB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBmcm96ZW5WYWx1ZSA9IGRlZXBGcmVlemUodmFsdWUpO1xuICAgICAgcmV0dXJuIHJvb3Quc2V0U3RhdGUoZnJvemVuVmFsdWUpO1xuICAgIH0sXG4gICAgZGlzcGF0Y2g6IGFjdGlvbnMgPT4ge1xuICAgICAgcmV0dXJuIHJvb3QuZGlzcGF0Y2goYWN0aW9ucyk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { throwPatchingArrayError, throwPatchingPrimitiveError } from '../configs/messages.config';
2
+ export function simplePatch(value) {
3
+ return (existingState) => {
4
+ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
5
+ if (Array.isArray(value)) {
6
+ throwPatchingArrayError();
7
+ }
8
+ else if (typeof value !== 'object') {
9
+ throwPatchingPrimitiveError();
10
+ }
11
+ }
12
+ const newState = { ...existingState };
13
+ for (const key in value) {
14
+ // deep clone for patch compatibility
15
+ newState[key] = value[key];
16
+ }
17
+ return newState;
18
+ };
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtb3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL3N0YXRlLW9wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUM1QixNQUFNLDRCQUE0QixDQUFDO0FBR3BDLE1BQU0sVUFBVSxXQUFXLENBQUksS0FBaUI7SUFDOUMsT0FBTyxDQUFDLGFBQStCLEVBQUUsRUFBRTtRQUN6QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsdUJBQXVCLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLDJCQUEyQixFQUFFLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBUSxFQUFFLEdBQUksYUFBcUIsRUFBRSxDQUFDO1FBQ3BELEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEIscUNBQXFDO1lBQ3JDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBSSxLQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELE9BQU8sUUFBYSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0aHJvd1BhdGNoaW5nQXJyYXlFcnJvcixcbiAgdGhyb3dQYXRjaGluZ1ByaW1pdGl2ZUVycm9yXG59IGZyb20gJy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcbmltcG9ydCB7IEV4aXN0aW5nU3RhdGUsIFN0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZS9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2ltcGxlUGF0Y2g8VD4odmFsdWU6IFBhcnRpYWw8VD4pOiBTdGF0ZU9wZXJhdG9yPFQ+IHtcbiAgcmV0dXJuIChleGlzdGluZ1N0YXRlOiBFeGlzdGluZ1N0YXRlPFQ+KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHRocm93UGF0Y2hpbmdBcnJheUVycm9yKCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3dQYXRjaGluZ1ByaW1pdGl2ZUVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV3U3RhdGU6IGFueSA9IHsgLi4uKGV4aXN0aW5nU3RhdGUgYXMgYW55KSB9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XG4gICAgICAvLyBkZWVwIGNsb25lIGZvciBwYXRjaCBjb21wYXRpYmlsaXR5XG4gICAgICBuZXdTdGF0ZVtrZXldID0gKHZhbHVlIGFzIGFueSlba2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3U3RhdGUgYXMgVDtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,39 @@
1
+ import { config } from 'rxjs';
2
+ const ɵɵunhandledRxjsErrorCallbacks = new WeakMap();
3
+ const existingHandler = config.onUnhandledError;
4
+ config.onUnhandledError = function (error) {
5
+ const unhandledErrorCallback = ɵɵunhandledRxjsErrorCallbacks.get(error);
6
+ if (unhandledErrorCallback) {
7
+ unhandledErrorCallback();
8
+ }
9
+ else if (existingHandler) {
10
+ existingHandler.call(this, error);
11
+ }
12
+ else {
13
+ throw error;
14
+ }
15
+ };
16
+ export function executeUnhandledCallback(error) {
17
+ const unhandledErrorCallback = ɵɵunhandledRxjsErrorCallbacks.get(error);
18
+ if (unhandledErrorCallback) {
19
+ unhandledErrorCallback();
20
+ return true;
21
+ }
22
+ return false;
23
+ }
24
+ export function assignUnhandledCallback(error, callback) {
25
+ // Since the error can be essentially anything, we must ensure that we only
26
+ // handle objects, as weak maps do not allow any other key type besides objects.
27
+ // The error can also be a string if thrown in the following manner: `throwError('My Error')`.
28
+ if (error !== null && typeof error === 'object') {
29
+ let hasBeenCalled = false;
30
+ ɵɵunhandledRxjsErrorCallbacks.set(error, () => {
31
+ if (!hasBeenCalled) {
32
+ hasBeenCalled = true;
33
+ callback();
34
+ }
35
+ });
36
+ }
37
+ return error;
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5oYW5kbGVkLXJ4anMtZXJyb3ItY2FsbGJhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaW50ZXJuYWwvdW5oYW5kbGVkLXJ4anMtZXJyb3ItY2FsbGJhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5QixNQUFNLDZCQUE2QixHQUFHLElBQUksT0FBTyxFQUFxQixDQUFDO0FBRXZFLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztBQUNoRCxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxLQUFVO0lBQzVDLE1BQU0sc0JBQXNCLEdBQUcsNkJBQTZCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQUMzQixzQkFBc0IsRUFBRSxDQUFDO0lBQzNCLENBQUM7U0FBTSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzNCLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQVU7SUFDakQsTUFBTSxzQkFBc0IsR0FBRyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQzNCLHNCQUFzQixFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQVUsRUFBRSxRQUFzQjtJQUN4RSwyRUFBMkU7SUFDM0UsZ0ZBQWdGO0lBQ2hGLDhGQUE4RjtJQUM5RixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEQsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzFCLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkIsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDckIsUUFBUSxFQUFFLENBQUM7WUFDYixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IMm1ybV1bmhhbmRsZWRSeGpzRXJyb3JDYWxsYmFja3MgPSBuZXcgV2Vha01hcDxhbnksIFZvaWRGdW5jdGlvbj4oKTtcblxuY29uc3QgZXhpc3RpbmdIYW5kbGVyID0gY29uZmlnLm9uVW5oYW5kbGVkRXJyb3I7XG5jb25maWcub25VbmhhbmRsZWRFcnJvciA9IGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG4gIGNvbnN0IHVuaGFuZGxlZEVycm9yQ2FsbGJhY2sgPSDJtcm1dW5oYW5kbGVkUnhqc0Vycm9yQ2FsbGJhY2tzLmdldChlcnJvcik7XG4gIGlmICh1bmhhbmRsZWRFcnJvckNhbGxiYWNrKSB7XG4gICAgdW5oYW5kbGVkRXJyb3JDYWxsYmFjaygpO1xuICB9IGVsc2UgaWYgKGV4aXN0aW5nSGFuZGxlcikge1xuICAgIGV4aXN0aW5nSGFuZGxlci5jYWxsKHRoaXMsIGVycm9yKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVVbmhhbmRsZWRDYWxsYmFjayhlcnJvcjogYW55KSB7XG4gIGNvbnN0IHVuaGFuZGxlZEVycm9yQ2FsbGJhY2sgPSDJtcm1dW5oYW5kbGVkUnhqc0Vycm9yQ2FsbGJhY2tzLmdldChlcnJvcik7XG4gIGlmICh1bmhhbmRsZWRFcnJvckNhbGxiYWNrKSB7XG4gICAgdW5oYW5kbGVkRXJyb3JDYWxsYmFjaygpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnblVuaGFuZGxlZENhbGxiYWNrKGVycm9yOiBhbnksIGNhbGxiYWNrOiBWb2lkRnVuY3Rpb24pIHtcbiAgLy8gU2luY2UgdGhlIGVycm9yIGNhbiBiZSBlc3NlbnRpYWxseSBhbnl0aGluZywgd2UgbXVzdCBlbnN1cmUgdGhhdCB3ZSBvbmx5XG4gIC8vIGhhbmRsZSBvYmplY3RzLCBhcyB3ZWFrIG1hcHMgZG8gbm90IGFsbG93IGFueSBvdGhlciBrZXkgdHlwZSBiZXNpZGVzIG9iamVjdHMuXG4gIC8vIFRoZSBlcnJvciBjYW4gYWxzbyBiZSBhIHN0cmluZyBpZiB0aHJvd24gaW4gdGhlIGZvbGxvd2luZyBtYW5uZXI6IGB0aHJvd0Vycm9yKCdNeSBFcnJvcicpYC5cbiAgaWYgKGVycm9yICE9PSBudWxsICYmIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcpIHtcbiAgICBsZXQgaGFzQmVlbkNhbGxlZCA9IGZhbHNlO1xuICAgIMm1ybV1bmhhbmRsZWRSeGpzRXJyb3JDYWxsYmFja3Muc2V0KGVycm9yLCAoKSA9PiB7XG4gICAgICBpZiAoIWhhc0JlZW5DYWxsZWQpIHtcbiAgICAgICAgaGFzQmVlbkNhbGxlZCA9IHRydWU7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGVycm9yO1xufVxuIl19
@@ -0,0 +1,25 @@
1
+ import { getUndecoratedStateWithInjectableWarningMessage } from '../configs/messages.config';
2
+ /**
3
+ * All provided or injected tokens must have `@Injectable` decorator
4
+ * (previously, injected tokens without `@Injectable` were allowed
5
+ * if another decorator was used, e.g. pipes).
6
+ */
7
+ export function ensureStateClassIsInjectable(stateClass) {
8
+ if (jit_hasInjectableAnnotation(stateClass) || aot_hasNgInjectableDef(stateClass)) {
9
+ return;
10
+ }
11
+ console.warn(getUndecoratedStateWithInjectableWarningMessage(stateClass.name));
12
+ }
13
+ function aot_hasNgInjectableDef(stateClass) {
14
+ // `ɵprov` is a static property added by the NGCC compiler. It always exists in
15
+ // AOT mode because this property is added before runtime. If an application is running in
16
+ // JIT mode then this property can be added by the `@Injectable()` decorator. The `@Injectable()`
17
+ // decorator has to go after the `@State()` decorator, thus we prevent users from unwanted DI errors.
18
+ return !!stateClass.ɵprov;
19
+ }
20
+ function jit_hasInjectableAnnotation(stateClass) {
21
+ // `ɵprov` doesn't exist in JIT mode (for instance when running unit tests with Jest).
22
+ const annotations = stateClass.__annotations__ || [];
23
+ return annotations.some((annotation) => annotation?.ngMetadataName === 'Injectable');
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaXZ5L2l2eS1lbmFibGVkLWluLWRldi1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsVUFBZTtJQUMxRCxJQUFJLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDbEYsT0FBTztJQUNULENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLCtDQUErQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLFVBQWU7SUFDN0MsK0VBQStFO0lBQy9FLDBGQUEwRjtJQUMxRixpR0FBaUc7SUFDakcscUdBQXFHO0lBQ3JHLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsVUFBZTtJQUNsRCxzRkFBc0Y7SUFDdEYsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDckQsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxLQUFLLFlBQVksQ0FBQyxDQUFDO0FBQzVGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRVbmRlY29yYXRlZFN0YXRlV2l0aEluamVjdGFibGVXYXJuaW5nTWVzc2FnZSB9IGZyb20gJy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcblxuLyoqXG4gKiBBbGwgcHJvdmlkZWQgb3IgaW5qZWN0ZWQgdG9rZW5zIG11c3QgaGF2ZSBgQEluamVjdGFibGVgIGRlY29yYXRvclxuICogKHByZXZpb3VzbHksIGluamVjdGVkIHRva2VucyB3aXRob3V0IGBASW5qZWN0YWJsZWAgd2VyZSBhbGxvd2VkXG4gKiBpZiBhbm90aGVyIGRlY29yYXRvciB3YXMgdXNlZCwgZS5nLiBwaXBlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlKHN0YXRlQ2xhc3M6IGFueSk6IHZvaWQge1xuICBpZiAoaml0X2hhc0luamVjdGFibGVBbm5vdGF0aW9uKHN0YXRlQ2xhc3MpIHx8IGFvdF9oYXNOZ0luamVjdGFibGVEZWYoc3RhdGVDbGFzcykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLndhcm4oZ2V0VW5kZWNvcmF0ZWRTdGF0ZVdpdGhJbmplY3RhYmxlV2FybmluZ01lc3NhZ2Uoc3RhdGVDbGFzcy5uYW1lKSk7XG59XG5cbmZ1bmN0aW9uIGFvdF9oYXNOZ0luamVjdGFibGVEZWYoc3RhdGVDbGFzczogYW55KTogYm9vbGVhbiB7XG4gIC8vIGDJtXByb3ZgIGlzIGEgc3RhdGljIHByb3BlcnR5IGFkZGVkIGJ5IHRoZSBOR0NDIGNvbXBpbGVyLiBJdCBhbHdheXMgZXhpc3RzIGluXG4gIC8vIEFPVCBtb2RlIGJlY2F1c2UgdGhpcyBwcm9wZXJ0eSBpcyBhZGRlZCBiZWZvcmUgcnVudGltZS4gSWYgYW4gYXBwbGljYXRpb24gaXMgcnVubmluZyBpblxuICAvLyBKSVQgbW9kZSB0aGVuIHRoaXMgcHJvcGVydHkgY2FuIGJlIGFkZGVkIGJ5IHRoZSBgQEluamVjdGFibGUoKWAgZGVjb3JhdG9yLiBUaGUgYEBJbmplY3RhYmxlKClgXG4gIC8vIGRlY29yYXRvciBoYXMgdG8gZ28gYWZ0ZXIgdGhlIGBAU3RhdGUoKWAgZGVjb3JhdG9yLCB0aHVzIHdlIHByZXZlbnQgdXNlcnMgZnJvbSB1bndhbnRlZCBESSBlcnJvcnMuXG4gIHJldHVybiAhIXN0YXRlQ2xhc3MuybVwcm92O1xufVxuXG5mdW5jdGlvbiBqaXRfaGFzSW5qZWN0YWJsZUFubm90YXRpb24oc3RhdGVDbGFzczogYW55KTogYm9vbGVhbiB7XG4gIC8vIGDJtXByb3ZgIGRvZXNuJ3QgZXhpc3QgaW4gSklUIG1vZGUgKGZvciBpbnN0YW5jZSB3aGVuIHJ1bm5pbmcgdW5pdCB0ZXN0cyB3aXRoIEplc3QpLlxuICBjb25zdCBhbm5vdGF0aW9ucyA9IHN0YXRlQ2xhc3MuX19hbm5vdGF0aW9uc19fIHx8IFtdO1xuICByZXR1cm4gYW5ub3RhdGlvbnMuc29tZSgoYW5ub3RhdGlvbjogYW55KSA9PiBhbm5vdGF0aW9uPy5uZ01ldGFkYXRhTmFtZSA9PT0gJ0luamVjdGFibGUnKTtcbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { NgxsRootModule } from './modules/ngxs-root.module';
3
+ import { NgxsFeatureModule } from './modules/ngxs-feature.module';
4
+ import { getRootProviders } from './standalone-features/root-providers';
5
+ import { getFeatureProviders } from './standalone-features/feature-providers';
6
+ import * as i0 from "@angular/core";
7
+ export class NgxsModule {
8
+ static forRoot(states = [], options = {}) {
9
+ return {
10
+ ngModule: NgxsRootModule,
11
+ providers: getRootProviders(states, options)
12
+ };
13
+ }
14
+ static forFeature(states = []) {
15
+ return {
16
+ ngModule: NgxsFeatureModule,
17
+ providers: getFeatureProviders(states)
18
+ };
19
+ }
20
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: NgxsModule }); }
22
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsModule }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsModule, decorators: [{
25
+ type: NgModule
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBRzlFLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQ1osU0FBd0IsRUFBRSxFQUMxQixVQUE2QixFQUFFO1FBRS9CLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBd0IsRUFBRTtRQUMxQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDO1NBQ3ZDLENBQUM7SUFDSixDQUFDO2lJQWhCVSxVQUFVO2tJQUFWLFVBQVU7a0lBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEdEIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyDJtVN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBOZ3hzTW9kdWxlT3B0aW9ucyB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBOZ3hzUm9vdE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy9uZ3hzLXJvb3QubW9kdWxlJztcbmltcG9ydCB7IE5neHNGZWF0dXJlTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL25neHMtZmVhdHVyZS5tb2R1bGUnO1xuaW1wb3J0IHsgZ2V0Um9vdFByb3ZpZGVycyB9IGZyb20gJy4vc3RhbmRhbG9uZS1mZWF0dXJlcy9yb290LXByb3ZpZGVycyc7XG5pbXBvcnQgeyBnZXRGZWF0dXJlUHJvdmlkZXJzIH0gZnJvbSAnLi9zdGFuZGFsb25lLWZlYXR1cmVzL2ZlYXR1cmUtcHJvdmlkZXJzJztcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgc3RhdGVzOiDJtVN0YXRlQ2xhc3NbXSA9IFtdLFxuICAgIG9wdGlvbnM6IE5neHNNb2R1bGVPcHRpb25zID0ge31cbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzUm9vdE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4c1Jvb3RNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IGdldFJvb3RQcm92aWRlcnMoc3RhdGVzLCBvcHRpb25zKVxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yRmVhdHVyZShzdGF0ZXM6IMm1U3RhdGVDbGFzc1tdID0gW10pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neHNGZWF0dXJlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hzRmVhdHVyZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogZ2V0RmVhdHVyZVByb3ZpZGVycyhzdGF0ZXMpXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { featureStatesInitializer } from '../standalone-features/initializers';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @ignore
6
+ */
7
+ export class NgxsFeatureModule {
8
+ constructor() {
9
+ featureStatesInitializer();
10
+ }
11
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsFeatureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: NgxsFeatureModule }); }
13
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsFeatureModule }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsFeatureModule, decorators: [{
16
+ type: NgModule
17
+ }], ctorParameters: () => [] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1mZWF0dXJlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9tb2R1bGVzL25neHMtZmVhdHVyZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFL0U7O0dBRUc7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCO1FBQ0Usd0JBQXdCLEVBQUUsQ0FBQztJQUM3QixDQUFDO2lJQUhVLGlCQUFpQjtrSUFBakIsaUJBQWlCO2tJQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBmZWF0dXJlU3RhdGVzSW5pdGlhbGl6ZXIgfSBmcm9tICcuLi9zdGFuZGFsb25lLWZlYXR1cmVzL2luaXRpYWxpemVycyc7XG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5ATmdNb2R1bGUoKVxuZXhwb3J0IGNsYXNzIE5neHNGZWF0dXJlTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZmVhdHVyZVN0YXRlc0luaXRpYWxpemVyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { rootStoreInitializer } from '../standalone-features/initializers';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @ignore
6
+ */
7
+ export class NgxsRootModule {
8
+ constructor() {
9
+ rootStoreInitializer();
10
+ }
11
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRootModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: NgxsRootModule }); }
13
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRootModule }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsRootModule, decorators: [{
16
+ type: NgModule
17
+ }], ctorParameters: () => [] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1yb290Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9tb2R1bGVzL25neHMtcm9vdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFM0U7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUN6QjtRQUNFLG9CQUFvQixFQUFFLENBQUM7SUFDekIsQ0FBQztpSUFIVSxjQUFjO2tJQUFkLGNBQWM7a0lBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHJvb3RTdG9yZUluaXRpYWxpemVyIH0gZnJvbSAnLi4vc3RhbmRhbG9uZS1mZWF0dXJlcy9pbml0aWFsaXplcnMnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzUm9vdE1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHJvb3RTdG9yZUluaXRpYWxpemVyKCk7XG4gIH1cbn1cbiJdfQ==