@dereekb/dbx-firebase 9.25.15 → 10.0.0

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 (218) hide show
  1. package/_index.scss +1 -0
  2. package/{esm2020 → esm2022}/lib/analytics/analytics.user.events.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/analytics/analytics.user.source.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/auth/appcheck/appcheck.interceptor.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/auth/firebase.auth.module.mjs +5 -5
  6. package/{esm2020 → esm2022}/lib/auth/login/firebase.login.module.mjs +45 -45
  7. package/esm2022/lib/auth/login/login.anonymous.component.mjs +23 -0
  8. package/esm2022/lib/auth/login/login.apple.component.mjs +23 -0
  9. package/{esm2020 → esm2022}/lib/auth/login/login.button.component.mjs +14 -14
  10. package/{esm2020 → esm2022}/lib/auth/login/login.component.mjs +6 -6
  11. package/{esm2020 → esm2022}/lib/auth/login/login.context.back.component.mjs +6 -6
  12. package/esm2022/lib/auth/login/login.context.directive.mjs +29 -0
  13. package/esm2022/lib/auth/login/login.email.component.mjs +24 -0
  14. package/{esm2020 → esm2022}/lib/auth/login/login.email.content.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/auth/login/login.email.form.component.mjs +6 -6
  16. package/{esm2020 → esm2022}/lib/auth/login/login.email.recovery.form.component.mjs +6 -6
  17. package/esm2022/lib/auth/login/login.facebook.component.mjs +23 -0
  18. package/esm2022/lib/auth/login/login.github.component.mjs +23 -0
  19. package/esm2022/lib/auth/login/login.google.component.mjs +23 -0
  20. package/{esm2020 → esm2022}/lib/auth/login/login.list.component.mjs +6 -6
  21. package/esm2022/lib/auth/login/login.microsoft.component.mjs +23 -0
  22. package/{esm2020 → esm2022}/lib/auth/login/login.service.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/auth/login/login.terms.component.mjs +6 -6
  24. package/{esm2020 → esm2022}/lib/auth/login/login.terms.simple.component.mjs +6 -6
  25. package/esm2022/lib/auth/login/login.twitter.component.mjs +23 -0
  26. package/{esm2020 → esm2022}/lib/auth/login/register.component.mjs +6 -6
  27. package/{esm2020 → esm2022}/lib/auth/login/register.email.component.mjs +4 -4
  28. package/{esm2020 → esm2022}/lib/auth/service/firebase.auth.service.mjs +4 -4
  29. package/{esm2020 → esm2022}/lib/development/development.module.mjs +22 -22
  30. package/{esm2020 → esm2022}/lib/development/development.popup.component.mjs +6 -6
  31. package/{esm2020 → esm2022}/lib/development/development.popup.content.component.mjs +4 -4
  32. package/{esm2020 → esm2022}/lib/development/development.popup.content.form.component.mjs +6 -6
  33. package/{esm2020 → esm2022}/lib/development/development.popup.directive.mjs +4 -4
  34. package/esm2022/lib/development/development.scheduler.list.component.mjs +80 -0
  35. package/esm2022/lib/development/development.scheduler.service.mjs +91 -0
  36. package/{esm2020 → esm2022}/lib/development/development.scheduler.widget.component.mjs +6 -6
  37. package/{esm2020 → esm2022}/lib/development/development.service.mjs +4 -4
  38. package/{esm2020 → esm2022}/lib/development/development.widget.service.mjs +4 -4
  39. package/{esm2020 → esm2022}/lib/firebase/firebase.emulator.module.mjs +5 -5
  40. package/esm2022/lib/firebase/firebase.emulator.service.mjs +35 -0
  41. package/esm2022/lib/firebase/firebase.module.mjs +293 -0
  42. package/{esm2020 → esm2022}/lib/firestore/firebase.firestore.context.service.mjs +4 -4
  43. package/{esm2020 → esm2022}/lib/firestore/firebase.firestore.module.mjs +5 -5
  44. package/{esm2020 → esm2022}/lib/function/firebase.function.module.mjs +5 -5
  45. package/{esm2020 → esm2022}/lib/model/model.module.mjs +5 -5
  46. package/esm2022/lib/model/modules/model/model.history.component.mjs +48 -0
  47. package/{esm2020 → esm2022}/lib/model/modules/model/model.history.module.mjs +5 -5
  48. package/{esm2020 → esm2022}/lib/model/modules/model/model.history.popover.button.component.mjs +6 -6
  49. package/esm2022/lib/model/modules/model/model.history.popover.component.mjs +50 -0
  50. package/esm2022/lib/model/modules/model/model.tracker.service.mjs +62 -0
  51. package/esm2022/lib/model/modules/model/model.types.list.component.mjs +64 -0
  52. package/{esm2020 → esm2022}/lib/model/modules/model/model.types.module.mjs +5 -5
  53. package/{esm2020 → esm2022}/lib/model/modules/model/model.types.service.mjs +4 -4
  54. package/{esm2020 → esm2022}/lib/model/modules/model/model.types.view.directive.mjs +4 -4
  55. package/{esm2020 → esm2022}/lib/model/modules/store/model.store.module.mjs +5 -5
  56. package/{esm2020 → esm2022}/lib/model/modules/store/store.collection.change.directive.mjs +7 -7
  57. package/{esm2020 → esm2022}/lib/model/modules/store/store.collection.change.if.directive.mjs +4 -4
  58. package/{esm2020 → esm2022}/lib/model/modules/store/store.collection.directive.mjs +4 -4
  59. package/{esm2020 → esm2022}/lib/model/modules/store/store.collection.list.directive.mjs +4 -4
  60. package/{esm2020 → esm2022}/lib/model/modules/store/store.collection.mjs +4 -4
  61. package/{esm2020 → esm2022}/lib/model/modules/store/store.document.auth.directive.mjs +4 -4
  62. package/{esm2020 → esm2022}/lib/model/modules/store/store.document.crud.mjs +1 -1
  63. package/{esm2020 → esm2022}/lib/model/modules/store/store.document.directive.mjs +4 -4
  64. package/esm2022/lib/model/modules/store/store.document.mjs +167 -0
  65. package/{esm2020 → esm2022}/lib/model/modules/store/store.document.router.directive.mjs +4 -4
  66. package/{esm2020 → esm2022}/lib/model/modules/store/store.document.router.key.directive.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/model/modules/store/store.subcollection.directive.mjs +4 -4
  68. package/{esm2020 → esm2022}/lib/model/modules/store/store.subcollection.document.mjs +4 -4
  69. package/{esm2020 → esm2022}/lib/model/modules/store/store.subcollection.mjs +4 -4
  70. package/esm2022/lib/model/service/model.context.service.mjs +38 -0
  71. package/{esm2020 → esm2022}/lib/model/system/systemstate.collection.store.directive.mjs +4 -4
  72. package/{esm2020 → esm2022}/lib/model/system/systemstate.collection.store.mjs +4 -4
  73. package/{esm2020 → esm2022}/lib/model/system/systemstate.document.store.directive.mjs +4 -4
  74. package/{esm2020 → esm2022}/lib/model/system/systemstate.document.store.mjs +4 -4
  75. package/{esm2020 → esm2022}/lib/module.mjs +5 -5
  76. package/{esm2020 → esm2022}/lib/pipe/key.pipe.mjs +7 -7
  77. package/{esm2020 → esm2022}/lib/pipe/pipe.module.mjs +5 -5
  78. package/{esm2020 → esm2022}/lib/storage/firebase.storage.module.mjs +5 -5
  79. package/{esm2020 → esm2022}/lib/storage/firebase.storage.service.mjs +4 -4
  80. package/{fesm2020 → fesm2022}/dereekb-dbx-firebase.mjs +502 -492
  81. package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -0
  82. package/lib/analytics/analytics.user.source.d.ts +1 -1
  83. package/lib/auth/auth.d.ts +1 -1
  84. package/lib/auth/login/_login.scss +6 -2
  85. package/lib/auth/login/login.anonymous.component.d.ts +1 -1
  86. package/lib/auth/login/login.apple.component.d.ts +1 -1
  87. package/lib/auth/login/login.button.component.d.ts +4 -4
  88. package/lib/auth/login/login.component.d.ts +1 -1
  89. package/lib/auth/login/login.context.back.component.d.ts +1 -1
  90. package/lib/auth/login/login.context.directive.d.ts +1 -1
  91. package/lib/auth/login/login.d.ts +5 -5
  92. package/lib/auth/login/login.email.component.d.ts +1 -1
  93. package/lib/auth/login/login.email.content.component.d.ts +2 -2
  94. package/lib/auth/login/login.email.form.component.d.ts +2 -2
  95. package/lib/auth/login/login.email.recovery.form.component.d.ts +1 -1
  96. package/lib/auth/login/login.facebook.component.d.ts +1 -1
  97. package/lib/auth/login/login.github.component.d.ts +1 -1
  98. package/lib/auth/login/login.google.component.d.ts +1 -1
  99. package/lib/auth/login/login.list.component.d.ts +1 -1
  100. package/lib/auth/login/login.microsoft.component.d.ts +1 -1
  101. package/lib/auth/login/login.password.d.ts +1 -1
  102. package/lib/auth/login/login.service.d.ts +1 -1
  103. package/lib/auth/login/login.terms.component.d.ts +1 -1
  104. package/lib/auth/login/login.terms.simple.component.d.ts +1 -1
  105. package/lib/auth/login/login.twitter.component.d.ts +1 -1
  106. package/lib/auth/login/register.component.d.ts +1 -1
  107. package/lib/auth/login/register.email.component.d.ts +1 -1
  108. package/lib/auth/service/firebase.auth.rxjs.d.ts +1 -1
  109. package/lib/auth/service/firebase.auth.service.d.ts +1 -1
  110. package/lib/auth/service/firebase.auth.service.delegate.d.ts +1 -1
  111. package/lib/development/development.popup.component.d.ts +1 -1
  112. package/lib/development/development.popup.content.component.d.ts +1 -1
  113. package/lib/development/development.popup.content.form.component.d.ts +1 -1
  114. package/lib/development/development.popup.directive.d.ts +1 -1
  115. package/lib/development/development.scheduler.list.component.d.ts +4 -4
  116. package/lib/development/development.scheduler.widget.component.d.ts +3 -3
  117. package/lib/model/loader/collection.change.trigger.d.ts +1 -1
  118. package/lib/model/loader/collection.change.watcher.d.ts +2 -2
  119. package/lib/model/loader/collection.loader.instance.d.ts +1 -1
  120. package/lib/model/modules/model/model.history.component.d.ts +1 -1
  121. package/lib/model/modules/model/model.history.popover.button.component.d.ts +2 -2
  122. package/lib/model/modules/model/model.history.popover.component.d.ts +1 -1
  123. package/lib/model/modules/model/model.types.list.component.d.ts +4 -4
  124. package/lib/model/modules/model/model.types.service.d.ts +3 -3
  125. package/lib/model/modules/model/model.types.view.directive.d.ts +1 -1
  126. package/lib/model/modules/store/store.collection.change.directive.d.ts +1 -1
  127. package/lib/model/modules/store/store.collection.change.if.directive.d.ts +2 -2
  128. package/lib/model/modules/store/store.collection.directive.d.ts +2 -2
  129. package/lib/model/modules/store/store.collection.list.directive.d.ts +1 -1
  130. package/lib/model/modules/store/store.document.auth.directive.d.ts +1 -1
  131. package/lib/model/modules/store/store.document.crud.d.ts +5 -9
  132. package/lib/model/modules/store/store.document.directive.d.ts +5 -5
  133. package/lib/model/modules/store/store.document.router.directive.d.ts +1 -1
  134. package/lib/model/modules/store/store.document.router.key.directive.d.ts +1 -1
  135. package/lib/model/modules/store/store.subcollection.d.ts +3 -3
  136. package/lib/model/modules/store/store.subcollection.directive.d.ts +1 -1
  137. package/lib/model/modules/store/store.subcollection.document.d.ts +1 -1
  138. package/lib/model/modules/store/store.subcollection.rxjs.d.ts +3 -3
  139. package/lib/model/service/model.context.instance.d.ts +1 -1
  140. package/lib/model/service/model.context.service.d.ts +1 -1
  141. package/lib/model/system/systemstate.collection.store.directive.d.ts +1 -1
  142. package/lib/model/system/systemstate.document.store.directive.d.ts +1 -1
  143. package/lib/storage/firebase.storage.module.d.ts +1 -1
  144. package/lib/style/_all-typography.scss +2 -2
  145. package/lib/style/_core.scss +1 -2
  146. package/lib/style/_theming.scss +1 -1
  147. package/package.json +25 -21
  148. package/esm2020/lib/auth/login/login.anonymous.component.mjs +0 -22
  149. package/esm2020/lib/auth/login/login.apple.component.mjs +0 -22
  150. package/esm2020/lib/auth/login/login.context.directive.mjs +0 -29
  151. package/esm2020/lib/auth/login/login.email.component.mjs +0 -23
  152. package/esm2020/lib/auth/login/login.facebook.component.mjs +0 -22
  153. package/esm2020/lib/auth/login/login.github.component.mjs +0 -22
  154. package/esm2020/lib/auth/login/login.google.component.mjs +0 -22
  155. package/esm2020/lib/auth/login/login.microsoft.component.mjs +0 -22
  156. package/esm2020/lib/auth/login/login.twitter.component.mjs +0 -22
  157. package/esm2020/lib/development/development.scheduler.list.component.mjs +0 -79
  158. package/esm2020/lib/development/development.scheduler.service.mjs +0 -91
  159. package/esm2020/lib/firebase/firebase.emulator.service.mjs +0 -35
  160. package/esm2020/lib/firebase/firebase.module.mjs +0 -293
  161. package/esm2020/lib/model/modules/model/model.history.component.mjs +0 -48
  162. package/esm2020/lib/model/modules/model/model.history.popover.component.mjs +0 -50
  163. package/esm2020/lib/model/modules/model/model.tracker.service.mjs +0 -62
  164. package/esm2020/lib/model/modules/model/model.types.list.component.mjs +0 -63
  165. package/esm2020/lib/model/modules/store/store.document.mjs +0 -168
  166. package/esm2020/lib/model/service/model.context.service.mjs +0 -38
  167. package/fesm2015/dereekb-dbx-firebase.mjs +0 -4632
  168. package/fesm2015/dereekb-dbx-firebase.mjs.map +0 -1
  169. package/fesm2020/dereekb-dbx-firebase.mjs.map +0 -1
  170. /package/{esm2020 → esm2022}/dereekb-dbx-firebase.mjs +0 -0
  171. /package/{esm2020 → esm2022}/index.mjs +0 -0
  172. /package/{esm2020 → esm2022}/lib/analytics/index.mjs +0 -0
  173. /package/{esm2020 → esm2022}/lib/auth/appcheck/appcheck.mjs +0 -0
  174. /package/{esm2020 → esm2022}/lib/auth/appcheck/index.mjs +0 -0
  175. /package/{esm2020 → esm2022}/lib/auth/auth.mjs +0 -0
  176. /package/{esm2020 → esm2022}/lib/auth/index.mjs +0 -0
  177. /package/{esm2020 → esm2022}/lib/auth/login/index.mjs +0 -0
  178. /package/{esm2020 → esm2022}/lib/auth/login/login.context.mjs +0 -0
  179. /package/{esm2020 → esm2022}/lib/auth/login/login.mjs +0 -0
  180. /package/{esm2020 → esm2022}/lib/auth/login/login.password.mjs +0 -0
  181. /package/{esm2020 → esm2022}/lib/auth/login/login.terms.mjs +0 -0
  182. /package/{esm2020 → esm2022}/lib/auth/service/firebase.auth.rxjs.mjs +0 -0
  183. /package/{esm2020 → esm2022}/lib/auth/service/firebase.auth.service.delegate.mjs +0 -0
  184. /package/{esm2020 → esm2022}/lib/auth/service/index.mjs +0 -0
  185. /package/{esm2020 → esm2022}/lib/development/development.widget.mjs +0 -0
  186. /package/{esm2020 → esm2022}/lib/development/index.mjs +0 -0
  187. /package/{esm2020 → esm2022}/lib/firebase/appcheck.mjs +0 -0
  188. /package/{esm2020 → esm2022}/lib/firebase/emulators.mjs +0 -0
  189. /package/{esm2020 → esm2022}/lib/firebase/index.mjs +0 -0
  190. /package/{esm2020 → esm2022}/lib/firebase/options.mjs +0 -0
  191. /package/{esm2020 → esm2022}/lib/firestore/firebase.firestore.mjs +0 -0
  192. /package/{esm2020 → esm2022}/lib/firestore/index.mjs +0 -0
  193. /package/{esm2020 → esm2022}/lib/function/index.mjs +0 -0
  194. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lib/model/error.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/model/index.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/model/loader/collection.change.trigger.mjs +0 -0
  198. /package/{esm2020 → esm2022}/lib/model/loader/collection.change.watcher.mjs +0 -0
  199. /package/{esm2020 → esm2022}/lib/model/loader/collection.loader.instance.mjs +0 -0
  200. /package/{esm2020 → esm2022}/lib/model/loader/collection.loader.mjs +0 -0
  201. /package/{esm2020 → esm2022}/lib/model/loader/document.loader.instance.mjs +0 -0
  202. /package/{esm2020 → esm2022}/lib/model/loader/document.loader.mjs +0 -0
  203. /package/{esm2020 → esm2022}/lib/model/loader/index.mjs +0 -0
  204. /package/{esm2020 → esm2022}/lib/model/modules/index.mjs +0 -0
  205. /package/{esm2020 → esm2022}/lib/model/modules/model/index.mjs +0 -0
  206. /package/{esm2020 → esm2022}/lib/model/modules/model/model.sourceselect.history.mjs +0 -0
  207. /package/{esm2020 → esm2022}/lib/model/modules/store/index.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/model/modules/store/store.subcollection.rxjs.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/model/service/index.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/model/service/model.context.instance.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/model/service/model.context.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/model/system/index.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/model/system/systemstate.document.store.accessor.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/pipe/index.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/router/id.param.redirect.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/router/index.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/storage/firebase.storage.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/storage/index.mjs +0 -0
@@ -1,79 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { AbstractDbxSelectionListWrapperDirective, AbstractDbxValueListViewItemComponent, AbstractDbxSelectionListViewDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, provideDbxListView, DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE, provideDbxListViewWrapper, DBX_VALUE_LIST_VIEW_ITEM } from '@dereekb/dbx-web';
3
- import { from, of } from 'rxjs';
4
- import { DbxFirebaseDevelopmentSchedulerService } from './development.scheduler.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@dereekb/dbx-web";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "./development.scheduler.service";
9
- import * as i4 from "@dereekb/dbx-core";
10
- export class DbxFirebaseDevelopmentSchedulerListComponent extends AbstractDbxSelectionListWrapperDirective {
11
- constructor() {
12
- super({
13
- componentClass: DbxFirebaseDevelopmentSchedulerListViewComponent,
14
- defaultSelectionMode: 'view'
15
- });
16
- }
17
- }
18
- DbxFirebaseDevelopmentSchedulerListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- DbxFirebaseDevelopmentSchedulerListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseDevelopmentSchedulerListComponent, selector: "dbx-firebase-development-scheduler-list", providers: provideDbxListViewWrapper(DbxFirebaseDevelopmentSchedulerListComponent), usesInheritance: true, ngImport: i0, template: "\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n", isInline: true, dependencies: [{ kind: "component", type: i1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state$", "config", "disabled", "selectionMode"], outputs: ["contentScrolled"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListComponent, decorators: [{
21
- type: Component,
22
- args: [{
23
- selector: 'dbx-firebase-development-scheduler-list',
24
- template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE,
25
- providers: provideDbxListViewWrapper(DbxFirebaseDevelopmentSchedulerListComponent)
26
- }]
27
- }], ctorParameters: function () { return []; } });
28
- export class DbxFirebaseDevelopmentSchedulerListViewComponent extends AbstractDbxSelectionListViewDirective {
29
- constructor() {
30
- super(...arguments);
31
- this.config = {
32
- componentClass: DbxFirebaseDevelopmentSchedulerListViewItemComponent,
33
- mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, icon: y.icon, itemValue: y })))
34
- };
35
- }
36
- }
37
- DbxFirebaseDevelopmentSchedulerListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
38
- DbxFirebaseDevelopmentSchedulerListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseDevelopmentSchedulerListViewComponent, selector: "ng-component", providers: provideDbxListView(DbxFirebaseDevelopmentSchedulerListViewComponent), usesInheritance: true, ngImport: i0, template: "<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>", isInline: true, dependencies: [{ kind: "component", type: i1.DbxSelectionValueListViewComponent, selector: "dbx-selection-list-view" }] });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListViewComponent, decorators: [{
40
- type: Component,
41
- args: [{
42
- template: DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE,
43
- providers: provideDbxListView(DbxFirebaseDevelopmentSchedulerListViewComponent)
44
- }]
45
- }] });
46
- export class DbxFirebaseDevelopmentSchedulerListViewItemComponent extends AbstractDbxValueListViewItemComponent {
47
- constructor(item, dbxFirebaseDevelopmentSchedulerService) {
48
- super(item);
49
- this.dbxFirebaseDevelopmentSchedulerService = dbxFirebaseDevelopmentSchedulerService;
50
- this.handleRun = (value, context) => {
51
- context.startWorkingWithObservable(from(this.dbxFirebaseDevelopmentSchedulerService.runScheduledFunction(this.name)));
52
- };
53
- }
54
- get name() {
55
- return this.itemValue.name;
56
- }
57
- }
58
- DbxFirebaseDevelopmentSchedulerListViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListViewItemComponent, deps: [{ token: DBX_VALUE_LIST_VIEW_ITEM }, { token: i3.DbxFirebaseDevelopmentSchedulerService }], target: i0.ɵɵFactoryTarget.Component });
59
- DbxFirebaseDevelopmentSchedulerListViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseDevelopmentSchedulerListViewItemComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
60
- <div dbxAction dbxActionValue fastTrigger [dbxActionHandler]="handleRun">
61
- <dbx-button dbxActionButton [text]="'Run ' + name"></dbx-button>
62
- <dbx-success *dbxActionHasSuccess="3000" dbxActionSuccess>Success</dbx-success>
63
- </div>
64
- `, isInline: true, dependencies: [{ kind: "component", type: i1.DbxSuccessComponent, selector: "dbx-success" }, { kind: "directive", type: i4.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i4.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i4.DbxActionValueDirective, selector: "[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i4.DbxActionHasSuccessDirective, selector: "[dbxActionHasSuccess]", inputs: ["dbxActionHasSuccess"] }, { kind: "directive", type: i4.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: i1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "iconOnly", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }] });
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerListViewItemComponent, decorators: [{
66
- type: Component,
67
- args: [{
68
- template: `
69
- <div dbxAction dbxActionValue fastTrigger [dbxActionHandler]="handleRun">
70
- <dbx-button dbxActionButton [text]="'Run ' + name"></dbx-button>
71
- <dbx-success *dbxActionHasSuccess="3000" dbxActionSuccess>Success</dbx-success>
72
- </div>
73
- `
74
- }]
75
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
76
- type: Inject,
77
- args: [DBX_VALUE_LIST_VIEW_ITEM]
78
- }] }, { type: i3.DbxFirebaseDevelopmentSchedulerService }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQuc2NoZWR1bGVyLmxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZGV2ZWxvcG1lbnQvZGV2ZWxvcG1lbnQuc2NoZWR1bGVyLmxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxxQ0FBcUMsRUFBRSxxQ0FBcUMsRUFBRSx1Q0FBdUMsRUFBbUMsa0JBQWtCLEVBQUUsbURBQW1ELEVBQXNCLHlCQUF5QixFQUFFLHdCQUF3QixFQUFvQixNQUFNLGtCQUFrQixDQUFDO0FBQ3hZLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7QUFVekYsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLHdDQUErRjtJQUMvSjtRQUNFLEtBQUssQ0FBQztZQUNKLGNBQWMsRUFBRSxnREFBZ0Q7WUFDaEUsb0JBQW9CLEVBQUUsTUFBTTtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDOzswSUFOVSw0Q0FBNEM7OEhBQTVDLDRDQUE0QyxrRUFGNUMseUJBQXlCLENBQUMsNENBQTRDLENBQUM7NEZBRXZFLDRDQUE0QztrQkFMeEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUNBQXlDO29CQUNuRCxRQUFRLEVBQUUsdUNBQXVDO29CQUNqRCxTQUFTLEVBQUUseUJBQXlCLDhDQUE4QztpQkFDbkY7O0FBY0QsTUFBTSxPQUFPLGdEQUFpRCxTQUFRLHFDQUE0RjtJQUpsSzs7UUFLVyxXQUFNLEdBQXdHO1lBQ3JILGNBQWMsRUFBRSxvREFBb0Q7WUFDcEUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2RixDQUFDO0tBQ0g7OzhJQUxZLGdEQUFnRDtrSUFBaEQsZ0RBQWdELHVDQUZoRCxrQkFBa0IsQ0FBQyxnREFBZ0QsQ0FBQzs0RkFFcEUsZ0RBQWdEO2tCQUo1RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELFNBQVMsRUFBRSxrQkFBa0Isa0RBQWtEO2lCQUNoRjs7QUFnQkQsTUFBTSxPQUFPLG9EQUFxRCxTQUFRLHFDQUE0RjtJQUtwSyxZQUE4QyxJQUE2RSxFQUFXLHNDQUE4RTtRQUNsTixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFEd0gsMkNBQXNDLEdBQXRDLHNDQUFzQyxDQUF3QztRQUkzTSxjQUFTLEdBQThDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2pGLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEgsQ0FBQyxDQUFDO0lBSkYsQ0FBQztJQU5ELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQzs7a0pBSFUsb0RBQW9ELGtCQUszQyx3QkFBd0I7c0lBTGpDLG9EQUFvRCwyRUFQckQ7Ozs7O0dBS1Q7NEZBRVUsb0RBQW9EO2tCQVJoRSxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7R0FLVDtpQkFDRjs7MEJBTWMsTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhTZWxlY3Rpb25MaXN0V3JhcHBlckRpcmVjdGl2ZSwgQWJzdHJhY3REYnhWYWx1ZUxpc3RWaWV3SXRlbUNvbXBvbmVudCwgQWJzdHJhY3REYnhTZWxlY3Rpb25MaXN0Vmlld0RpcmVjdGl2ZSwgREVGQVVMVF9MSVNUX1dSQVBQRVJfRElSRUNUSVZFX1RFTVBMQVRFLCBEYnhTZWxlY3Rpb25WYWx1ZUxpc3RWaWV3Q29uZmlnLCBwcm92aWRlRGJ4TGlzdFZpZXcsIERFRkFVTFRfREJYX1NFTEVDVElPTl9WQUxVRV9MSVNUX0RJUkVDVElWRV9URU1QTEFURSwgRGJ4VmFsdWVBc0xpc3RJdGVtLCBwcm92aWRlRGJ4TGlzdFZpZXdXcmFwcGVyLCBEQlhfVkFMVUVfTElTVF9WSUVXX0lURU0sIERieFZhbHVlTGlzdEl0ZW0gfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RmlyZWJhc2VGdW5jdGlvbkxpc3RFbnRyeSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlIH0gZnJvbSAnLi9kZXZlbG9wbWVudC5zY2hlZHVsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIYW5kbGVBY3Rpb25XaXRoQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcblxuZXhwb3J0IHR5cGUgU2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25MaXN0RW50cnlXaXRoU2VsZWN0aW9uID0gRGJ4VmFsdWVBc0xpc3RJdGVtPFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uTGlzdEVudHJ5PjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLWRldmVsb3BtZW50LXNjaGVkdWxlci1saXN0JyxcbiAgdGVtcGxhdGU6IERFRkFVTFRfTElTVF9XUkFQUEVSX0RJUkVDVElWRV9URU1QTEFURSxcbiAgcHJvdmlkZXJzOiBwcm92aWRlRGJ4TGlzdFZpZXdXcmFwcGVyKERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJMaXN0Q29tcG9uZW50KVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyTGlzdENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RGJ4U2VsZWN0aW9uTGlzdFdyYXBwZXJEaXJlY3RpdmU8U2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25MaXN0RW50cnk+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe1xuICAgICAgY29tcG9uZW50Q2xhc3M6IERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJMaXN0Vmlld0NvbXBvbmVudCxcbiAgICAgIGRlZmF1bHRTZWxlY3Rpb25Nb2RlOiAndmlldydcbiAgICB9KTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IERFRkFVTFRfREJYX1NFTEVDVElPTl9WQUxVRV9MSVNUX0RJUkVDVElWRV9URU1QTEFURSxcbiAgcHJvdmlkZXJzOiBwcm92aWRlRGJ4TGlzdFZpZXcoRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlckxpc3RWaWV3Q29tcG9uZW50KVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyTGlzdFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RWaWV3RGlyZWN0aXZlPFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uTGlzdEVudHJ5PiB7XG4gIHJlYWRvbmx5IGNvbmZpZzogRGJ4U2VsZWN0aW9uVmFsdWVMaXN0Vmlld0NvbmZpZzxTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RmlyZWJhc2VGdW5jdGlvbkxpc3RFbnRyeVdpdGhTZWxlY3Rpb24+ID0ge1xuICAgIGNvbXBvbmVudENsYXNzOiBEYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyTGlzdFZpZXdJdGVtQ29tcG9uZW50LFxuICAgIG1hcFZhbHVlc1RvSXRlbVZhbHVlczogKHgpID0+IG9mKHgubWFwKCh5KSA9PiAoeyAuLi55LCBpY29uOiB5Lmljb24sIGl0ZW1WYWx1ZTogeSB9KSkpXG4gIH07XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgZGJ4QWN0aW9uIGRieEFjdGlvblZhbHVlIGZhc3RUcmlnZ2VyIFtkYnhBY3Rpb25IYW5kbGVyXT1cImhhbmRsZVJ1blwiPlxuICAgICAgPGRieC1idXR0b24gZGJ4QWN0aW9uQnV0dG9uIFt0ZXh0XT1cIidSdW4gJyArIG5hbWVcIj48L2RieC1idXR0b24+XG4gICAgICA8ZGJ4LXN1Y2Nlc3MgKmRieEFjdGlvbkhhc1N1Y2Nlc3M9XCIzMDAwXCIgZGJ4QWN0aW9uU3VjY2Vzcz5TdWNjZXNzPC9kYngtc3VjY2Vzcz5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyTGlzdFZpZXdJdGVtQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhWYWx1ZUxpc3RWaWV3SXRlbUNvbXBvbmVudDxTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RmlyZWJhc2VGdW5jdGlvbkxpc3RFbnRyeT4ge1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVmFsdWUubmFtZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoREJYX1ZBTFVFX0xJU1RfVklFV19JVEVNKSBpdGVtOiBEYnhWYWx1ZUxpc3RJdGVtPFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uTGlzdEVudHJ5PiwgcmVhZG9ubHkgZGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2U6IERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoaXRlbSk7XG4gIH1cblxuICByZWFkb25seSBoYW5kbGVSdW46IEhhbmRsZUFjdGlvbldpdGhDb250ZXh0PHVua25vd24sIHVua25vd24+ID0gKHZhbHVlLCBjb250ZXh0KSA9PiB7XG4gICAgY29udGV4dC5zdGFydFdvcmtpbmdXaXRoT2JzZXJ2YWJsZShmcm9tKHRoaXMuZGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2UucnVuU2NoZWR1bGVkRnVuY3Rpb24odGhpcy5uYW1lKSkpO1xuICB9O1xufVxuIl19
@@ -1,91 +0,0 @@
1
- import { DbxAuthService } from '@dereekb/dbx-core';
2
- import { tap, switchMap, BehaviorSubject, interval, combineLatest, map, exhaustMap, distinctUntilChanged, shareReplay } from 'rxjs';
3
- import { PromiseUtility } from '@dereekb/util';
4
- import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
5
- import { lazyFrom, SubscriptionObject, switchMapWhileTrue } from '@dereekb/rxjs';
6
- import { FirebaseDevelopmentFunctions, ScheduledFunctionDevelopmentFunctionTypeEnum } from '@dereekb/firebase';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@dereekb/dbx-core";
9
- import * as i2 from "@dereekb/firebase";
10
- /**
11
- * Whether or not the scheduler should be enabled.
12
- */
13
- export const DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN = new InjectionToken('DefaultDbxFirebaseDevelopmentSchedulerEnabled');
14
- /**
15
- * Service used for hitting the scheduler in the development environment using the
16
- */
17
- export class DbxFirebaseDevelopmentSchedulerService {
18
- constructor(_startEnabled, dbxAuthService, firebaseDevelopmentFunctions) {
19
- this._startEnabled = _startEnabled;
20
- this.dbxAuthService = dbxAuthService;
21
- this.firebaseDevelopmentFunctions = firebaseDevelopmentFunctions;
22
- this._sub = new SubscriptionObject();
23
- this._enabled = new BehaviorSubject(this._startEnabled !== false);
24
- this._timerInterval = new BehaviorSubject(60 * 1000);
25
- this._error = new BehaviorSubject(false);
26
- this.enabled$ = this._enabled.asObservable();
27
- this.running$ = combineLatest([this._enabled, this.dbxAuthService.authUserState$.pipe(map((x) => x === 'user'))]).pipe(map(([enabled, userReady]) => enabled && userReady), distinctUntilChanged(), shareReplay(1));
28
- this.timerInterval$ = this._timerInterval.asObservable();
29
- this.error$ = this._error.pipe(distinctUntilChanged());
30
- this.schedulerList$ = lazyFrom(() => {
31
- return this.firebaseDevelopmentFunctions
32
- .scheduledFunction({ type: ScheduledFunctionDevelopmentFunctionTypeEnum.LIST })
33
- .then((result) => {
34
- const list = result;
35
- return list.list;
36
- })
37
- .catch((e) => {
38
- console.error('Failed to retrieve development schedule list from server.', e);
39
- throw e;
40
- });
41
- });
42
- }
43
- init() {
44
- this._sub.subscription = this.running$
45
- .pipe(switchMapWhileTrue(() => {
46
- console.log('DbxFirebaseDevelopmentSchedulerService enabled.');
47
- return combineLatest([this._timerInterval, this.schedulerList$]).pipe(switchMap(([timerInterval, schedulerList]) => {
48
- const executionOrder = schedulerList.map((x) => x.name);
49
- return interval(timerInterval).pipe(exhaustMap(() => {
50
- console.log('Running scheduled tasks in order... ', executionOrder);
51
- return PromiseUtility.runTasksForValues(executionOrder, (taskName) => this.runScheduledFunction(taskName), { sequential: true, retriesAllowed: 0, retryWait: 0 })
52
- .then(() => true)
53
- .catch((e) => {
54
- console.log('Failed running scheduled task: ', e);
55
- this._error.next(true);
56
- return false;
57
- });
58
- }), tap((success) => {
59
- if (success) {
60
- console.log('Successfully finished running all scheduled tasks.');
61
- this._error.next(false);
62
- }
63
- }));
64
- }));
65
- }))
66
- .subscribe();
67
- }
68
- runScheduledFunction(taskName) {
69
- return this.firebaseDevelopmentFunctions.scheduledFunction({
70
- run: taskName,
71
- type: ScheduledFunctionDevelopmentFunctionTypeEnum.RUN
72
- });
73
- }
74
- setTimer(timerInterval) {
75
- this._timerInterval.next(timerInterval);
76
- }
77
- }
78
- DbxFirebaseDevelopmentSchedulerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerService, deps: [{ token: DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, optional: true }, { token: i1.DbxAuthService }, { token: i2.FirebaseDevelopmentFunctions }], target: i0.ɵɵFactoryTarget.Injectable });
79
- DbxFirebaseDevelopmentSchedulerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerService, providedIn: 'root' });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDevelopmentSchedulerService, decorators: [{
81
- type: Injectable,
82
- args: [{
83
- providedIn: 'root'
84
- }]
85
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
86
- type: Optional
87
- }, {
88
- type: Inject,
89
- args: [DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN]
90
- }] }, { type: i1.DbxAuthService }, { type: i2.FirebaseDevelopmentFunctions }]; } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQuc2NoZWR1bGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9kZXZlbG9wbWVudC9kZXZlbG9wbWVudC5zY2hlZHVsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEosT0FBTyxFQUE2QixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBaUgsNENBQTRDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUU5Tjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9EQUFvRCxHQUFHLElBQUksY0FBYyxDQUFDLCtDQUErQyxDQUFDLENBQUM7QUFFeEk7O0dBRUc7QUFJSCxNQUFNLE9BQU8sc0NBQXNDO0lBNEJqRCxZQUE4RixhQUFzQixFQUFXLGNBQThCLEVBQVcsNEJBQTBEO1FBQXBJLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQVcsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVcsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQTNCMU4sU0FBSSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNoQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUN0RSxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM5RCxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFNUMsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsYUFBUSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDeEgsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsRUFDbkQsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFDTyxtQkFBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEQsV0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUVsRCxtQkFBYyxHQUF3RSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNHLE9BQU8sSUFBSSxDQUFDLDRCQUE0QjtpQkFDckMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsNENBQTRDLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQzlFLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNmLE1BQU0sSUFBSSxHQUFHLE1BQWdFLENBQUM7Z0JBQzlFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQywyREFBMkQsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDOUUsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBRWtPLENBQUM7SUFFdE8sSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRO2FBQ25DLElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ25FLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLE1BQU0sY0FBYyxHQUFhLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFbEUsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBRXBFLE9BQU8sY0FBYyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQzt5QkFDOUosSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt5QkFDaEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ3ZCLE9BQU8sS0FBSyxDQUFDO29CQUNmLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUNkLElBQUksT0FBTyxFQUFFO3dCQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0RBQW9ELENBQUMsQ0FBQzt3QkFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3pCO2dCQUNILENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsUUFBZ0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsaUJBQWlCLENBQUM7WUFDekQsR0FBRyxFQUFFLFFBQVE7WUFDYixJQUFJLEVBQUUsNENBQTRDLENBQUMsR0FBRztTQUN2RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLGFBQXFCO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O29JQTFFVSxzQ0FBc0Msa0JBNEJqQixvREFBb0Q7d0lBNUJ6RSxzQ0FBc0MsY0FGckMsTUFBTTs0RkFFUCxzQ0FBc0M7a0JBSGxELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE2QmMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvREFBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYnhBdXRoU2VydmljZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IHRhcCwgc3dpdGNoTWFwLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGludGVydmFsLCBjb21iaW5lTGF0ZXN0LCBtYXAsIGV4aGF1c3RNYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZWQsIE1pbGxpc2Vjb25kcywgUHJvbWlzZVV0aWxpdHkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBsYXp5RnJvbSwgU3Vic2NyaXB0aW9uT2JqZWN0LCBzd2l0Y2hNYXBXaGlsZVRydWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEZpcmViYXNlRGV2ZWxvcG1lbnRGdW5jdGlvbnMsIFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uTGlzdEVudHJ5LCBTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RmlyZWJhc2VGdW5jdGlvbkxpc3RSZXN1bHQsIFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGdW5jdGlvblR5cGVFbnVtIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIFdoZXRoZXIgb3Igbm90IHRoZSBzY2hlZHVsZXIgc2hvdWxkIGJlIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZJUkVCQVNFX0RFVkVMT1BNRU5UX1NDSEVEVUxFUl9FTkFCTEVEX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuKCdEZWZhdWx0RGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlckVuYWJsZWQnKTtcblxuLyoqXG4gKiBTZXJ2aWNlIHVzZWQgZm9yIGhpdHRpbmcgdGhlIHNjaGVkdWxlciBpbiB0aGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdXNpbmcgdGhlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlIGltcGxlbWVudHMgSW5pdGlhbGl6ZWQge1xuICBwcml2YXRlIF9zdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2VuYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX3N0YXJ0RW5hYmxlZCAhPT0gZmFsc2UpO1xuICBwcml2YXRlIF90aW1lckludGVydmFsID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNaWxsaXNlY29uZHM+KDYwICogMTAwMCk7XG4gIHByaXZhdGUgX2Vycm9yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZW5hYmxlZCQgPSB0aGlzLl9lbmFibGVkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBydW5uaW5nJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2VuYWJsZWQsIHRoaXMuZGJ4QXV0aFNlcnZpY2UuYXV0aFVzZXJTdGF0ZSQucGlwZShtYXAoKHgpID0+IHggPT09ICd1c2VyJykpXSkucGlwZShcbiAgICBtYXAoKFtlbmFibGVkLCB1c2VyUmVhZHldKSA9PiBlbmFibGVkICYmIHVzZXJSZWFkeSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICByZWFkb25seSB0aW1lckludGVydmFsJCA9IHRoaXMuX3RpbWVySW50ZXJ2YWwuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGVycm9yJCA9IHRoaXMuX2Vycm9yLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgcmVhZG9ubHkgc2NoZWR1bGVyTGlzdCQ6IE9ic2VydmFibGU8U2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25MaXN0RW50cnlbXT4gPSBsYXp5RnJvbSgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZWJhc2VEZXZlbG9wbWVudEZ1bmN0aW9uc1xuICAgICAgLnNjaGVkdWxlZEZ1bmN0aW9uKHsgdHlwZTogU2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZ1bmN0aW9uVHlwZUVudW0uTElTVCB9KVxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICBjb25zdCBsaXN0ID0gcmVzdWx0IGFzIFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uTGlzdFJlc3VsdDtcbiAgICAgICAgcmV0dXJuIGxpc3QubGlzdDtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJldHJpZXZlIGRldmVsb3BtZW50IHNjaGVkdWxlIGxpc3QgZnJvbSBzZXJ2ZXIuJywgZSk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChERUZBVUxUX0ZJUkVCQVNFX0RFVkVMT1BNRU5UX1NDSEVEVUxFUl9FTkFCTEVEX1RPS0VOKSBwcml2YXRlIF9zdGFydEVuYWJsZWQ6IGJvb2xlYW4sIHJlYWRvbmx5IGRieEF1dGhTZXJ2aWNlOiBEYnhBdXRoU2VydmljZSwgcmVhZG9ubHkgZmlyZWJhc2VEZXZlbG9wbWVudEZ1bmN0aW9uczogRmlyZWJhc2VEZXZlbG9wbWVudEZ1bmN0aW9ucykge31cblxuICBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnJ1bm5pbmckXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwV2hpbGVUcnVlKCgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2UgZW5hYmxlZC4nKTtcbiAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5fdGltZXJJbnRlcnZhbCwgdGhpcy5zY2hlZHVsZXJMaXN0JF0pLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFt0aW1lckludGVydmFsLCBzY2hlZHVsZXJMaXN0XSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBleGVjdXRpb25PcmRlcjogc3RyaW5nW10gPSBzY2hlZHVsZXJMaXN0Lm1hcCgoeCkgPT4geC5uYW1lKTtcblxuICAgICAgICAgICAgICByZXR1cm4gaW50ZXJ2YWwodGltZXJJbnRlcnZhbCkucGlwZShcbiAgICAgICAgICAgICAgICBleGhhdXN0TWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSdW5uaW5nIHNjaGVkdWxlZCB0YXNrcyBpbiBvcmRlci4uLiAnLCBleGVjdXRpb25PcmRlcik7XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlVXRpbGl0eS5ydW5UYXNrc0ZvclZhbHVlcyhleGVjdXRpb25PcmRlciwgKHRhc2tOYW1lKSA9PiB0aGlzLnJ1blNjaGVkdWxlZEZ1bmN0aW9uKHRhc2tOYW1lKSwgeyBzZXF1ZW50aWFsOiB0cnVlLCByZXRyaWVzQWxsb3dlZDogMCwgcmV0cnlXYWl0OiAwIH0pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGYWlsZWQgcnVubmluZyBzY2hlZHVsZWQgdGFzazogJywgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyb3IubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRhcCgoc3VjY2VzcykgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1N1Y2Nlc3NmdWxseSBmaW5pc2hlZCBydW5uaW5nIGFsbCBzY2hlZHVsZWQgdGFza3MuJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Vycm9yLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBydW5TY2hlZHVsZWRGdW5jdGlvbih0YXNrTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZWJhc2VEZXZlbG9wbWVudEZ1bmN0aW9ucy5zY2hlZHVsZWRGdW5jdGlvbih7XG4gICAgICBydW46IHRhc2tOYW1lLFxuICAgICAgdHlwZTogU2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZ1bmN0aW9uVHlwZUVudW0uUlVOXG4gICAgfSk7XG4gIH1cblxuICBzZXRUaW1lcih0aW1lckludGVydmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLl90aW1lckludGVydmFsLm5leHQodGltZXJJbnRlcnZhbCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { DbxFirebaseParsedEmulatorsConfig } from './emulators';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./emulators";
5
- export class DbxFirebaseEmulatorService {
6
- constructor(emulatorsConfig) {
7
- this.emulatorsConfig = emulatorsConfig;
8
- }
9
- get useEmulators() {
10
- return this.emulatorsConfig.useEmulators || false;
11
- }
12
- get emulatorUIAnchor() {
13
- const ui = this.emulatorsConfig.ui;
14
- let host = this.emulatorsConfig.host;
15
- // Issue where sometimes 0.0.0.0 is not configured to handle transferring traffic properly, compared to localhost. This sets 0.0.0.0 to localhost unless disallowed.
16
- if (host === '0.0.0.0' && this.emulatorsConfig.allow0000ToLocalhost !== false) {
17
- host = 'localhost';
18
- }
19
- return ui
20
- ? {
21
- url: `http://${host ?? 'localhost'}:${ui.port}`,
22
- target: '_blank'
23
- }
24
- : undefined;
25
- }
26
- }
27
- DbxFirebaseEmulatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseEmulatorService, deps: [{ token: i1.DbxFirebaseParsedEmulatorsConfig }], target: i0.ɵɵFactoryTarget.Injectable });
28
- DbxFirebaseEmulatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseEmulatorService, providedIn: 'root' });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseEmulatorService, decorators: [{
30
- type: Injectable,
31
- args: [{
32
- providedIn: 'root'
33
- }]
34
- }], ctorParameters: function () { return [{ type: i1.DbxFirebaseParsedEmulatorsConfig }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuZW11bGF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmViYXNlL2ZpcmViYXNlLmVtdWxhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUsvRCxNQUFNLE9BQU8sMEJBQTBCO0lBc0JyQyxZQUFxQixlQUFpRDtRQUFqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBa0M7SUFBRyxDQUFDO0lBckIxRSxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDbkMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7UUFFckMsb0tBQW9LO1FBQ3BLLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixLQUFLLEtBQUssRUFBRTtZQUM3RSxJQUFJLEdBQUcsV0FBVyxDQUFDO1NBQ3BCO1FBRUQsT0FBTyxFQUFFO1lBQ1AsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsRUFBRSxVQUFVLElBQUksSUFBSSxXQUFXLElBQUksRUFBRSxDQUFDLElBQUksRUFBRTtnQkFDL0MsTUFBTSxFQUFFLFFBQVE7YUFDakI7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7O3dIQXBCVSwwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGlja2FibGVVcmwgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcgfSBmcm9tICcuL2VtdWxhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRW11bGF0b3JTZXJ2aWNlIHtcbiAgZ2V0IHVzZUVtdWxhdG9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbXVsYXRvcnNDb25maWcudXNlRW11bGF0b3JzIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGVtdWxhdG9yVUlBbmNob3IoKTogTWF5YmU8Q2xpY2thYmxlVXJsPiB7XG4gICAgY29uc3QgdWkgPSB0aGlzLmVtdWxhdG9yc0NvbmZpZy51aTtcbiAgICBsZXQgaG9zdCA9IHRoaXMuZW11bGF0b3JzQ29uZmlnLmhvc3Q7XG5cbiAgICAvLyBJc3N1ZSB3aGVyZSBzb21ldGltZXMgMC4wLjAuMCBpcyBub3QgY29uZmlndXJlZCB0byBoYW5kbGUgdHJhbnNmZXJyaW5nIHRyYWZmaWMgcHJvcGVybHksIGNvbXBhcmVkIHRvIGxvY2FsaG9zdC4gVGhpcyBzZXRzIDAuMC4wLjAgdG8gbG9jYWxob3N0IHVubGVzcyBkaXNhbGxvd2VkLlxuICAgIGlmIChob3N0ID09PSAnMC4wLjAuMCcgJiYgdGhpcy5lbXVsYXRvcnNDb25maWcuYWxsb3cwMDAwVG9Mb2NhbGhvc3QgIT09IGZhbHNlKSB7XG4gICAgICBob3N0ID0gJ2xvY2FsaG9zdCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVpXG4gICAgICA/IHtcbiAgICAgICAgICB1cmw6IGBodHRwOi8vJHtob3N0ID8/ICdsb2NhbGhvc3QnfToke3VpLnBvcnR9YCxcbiAgICAgICAgICB0YXJnZXQ6ICdfYmxhbmsnXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZW11bGF0b3JzQ29uZmlnOiBEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZykge31cbn1cbiJdfQ==
@@ -1,293 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { initializeApp } from 'firebase/app';
3
- import { initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
4
- import { FirebaseApp, provideFirebaseApp } from '@angular/fire/app';
5
- import { provideStorage, getStorage, connectStorageEmulator } from '@angular/fire/storage';
6
- import { provideFunctions, getFunctions, connectFunctionsEmulator } from '@angular/fire/functions';
7
- import { provideFirestore, getFirestore, connectFirestoreEmulator, enableIndexedDbPersistence, enableMultiTabIndexedDbPersistence } from '@angular/fire/firestore';
8
- import { provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
9
- import { provideAppCheck } from '@angular/fire/app-check';
10
- import { DbxFirebaseParsedEmulatorsConfig } from './emulators';
11
- import { DBX_FIREBASE_OPTIONS_TOKEN } from './options';
12
- import { HTTP_INTERCEPTORS } from '@angular/common/http';
13
- import { enableAppCheckDebugTokenGeneration } from '../auth/appcheck';
14
- import { DbxFirebaseAppCheckHttpInterceptor } from '../auth/appcheck/appcheck.interceptor';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@angular/fire/firestore";
17
- import * as i2 from "@angular/fire/app-check";
18
- import * as i3 from "@angular/fire/auth";
19
- import * as i4 from "@angular/fire/storage";
20
- import * as i5 from "@angular/fire/functions";
21
- import * as i6 from "@angular/fire/app";
22
- // TODO: remove "as any" typescript casting - https://github.com/angular/angularfire/issues/3086
23
- /**
24
- * Default firebase firestore provider module.
25
- */
26
- export class DbxFirebaseDefaultFirestoreProviderModule {
27
- }
28
- DbxFirebaseDefaultFirestoreProviderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
29
- DbxFirebaseDefaultFirestoreProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, imports: [i1.FirestoreModule] });
30
- DbxFirebaseDefaultFirestoreProviderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, imports: [provideFirestore(((injector) => {
31
- const firebaseApp = injector.get(FirebaseApp);
32
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
33
- const firestore = getFirestore(firebaseApp);
34
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
35
- if (emulators?.useEmulators && emulators?.firestore) {
36
- connectFirestoreEmulator(firestore, emulators.firestore.host, emulators.firestore.port, {});
37
- }
38
- if (firebaseOptions.enableMultiTabIndexedDbPersistence !== false) {
39
- enableMultiTabIndexedDbPersistence(firestore);
40
- }
41
- else if (firebaseOptions.enableIndexedDbPersistence !== false) {
42
- enableIndexedDbPersistence(firestore);
43
- }
44
- return firestore;
45
- }))] });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, decorators: [{
47
- type: NgModule,
48
- args: [{
49
- imports: [
50
- provideFirestore(((injector) => {
51
- const firebaseApp = injector.get(FirebaseApp);
52
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
53
- const firestore = getFirestore(firebaseApp);
54
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
55
- if (emulators?.useEmulators && emulators?.firestore) {
56
- connectFirestoreEmulator(firestore, emulators.firestore.host, emulators.firestore.port, {});
57
- }
58
- if (firebaseOptions.enableMultiTabIndexedDbPersistence !== false) {
59
- enableMultiTabIndexedDbPersistence(firestore);
60
- }
61
- else if (firebaseOptions.enableIndexedDbPersistence !== false) {
62
- enableIndexedDbPersistence(firestore);
63
- }
64
- return firestore;
65
- }))
66
- ]
67
- }]
68
- }] });
69
- /**
70
- * Default firebase app check provider module.
71
- *
72
- * Also configures the DbxFirebaseAppCheckHttpInterceptor with HTTP_INTERCEPTORS in order for appCheck to be appended to requests to the api.
73
- */
74
- export class DbxFirebaseDefaultAppCheckProviderModule {
75
- }
76
- DbxFirebaseDefaultAppCheckProviderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
77
- DbxFirebaseDefaultAppCheckProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, imports: [i2.AppCheckModule] });
78
- DbxFirebaseDefaultAppCheckProviderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, providers: [
79
- {
80
- provide: HTTP_INTERCEPTORS,
81
- useClass: DbxFirebaseAppCheckHttpInterceptor,
82
- multi: true
83
- }
84
- ], imports: [provideAppCheck((injector) => {
85
- const firebaseApp = injector.get(FirebaseApp);
86
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
87
- const appCheckOptions = firebaseOptions.appCheck;
88
- const appCheckKnowinglyDisabled = appCheckOptions?.disabled === true || firebaseOptions.emulators?.useEmulators === true;
89
- let appCheck;
90
- if (appCheckOptions && !appCheckKnowinglyDisabled) {
91
- // enable the debug tokens if not using emulators and allowDebugTokens is set true
92
- if (firebaseOptions.emulators?.useEmulators !== true && appCheckOptions.allowDebugTokens) {
93
- enableAppCheckDebugTokenGeneration(true);
94
- }
95
- // Only enabled outside of app-check environments. The emulators will not use appcheck.
96
- appCheck = initializeAppCheck(firebaseApp, {
97
- provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
98
- isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
99
- });
100
- console.log('Enabled AppCheck.');
101
- }
102
- else {
103
- appCheck = undefined;
104
- if (!appCheckKnowinglyDisabled) {
105
- console.error('dbx-firebase: No appcheck configuration for the app, and not specifically disabled in config either.');
106
- }
107
- }
108
- return appCheck;
109
- })] });
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, decorators: [{
111
- type: NgModule,
112
- args: [{
113
- imports: [
114
- provideAppCheck((injector) => {
115
- const firebaseApp = injector.get(FirebaseApp);
116
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
117
- const appCheckOptions = firebaseOptions.appCheck;
118
- const appCheckKnowinglyDisabled = appCheckOptions?.disabled === true || firebaseOptions.emulators?.useEmulators === true;
119
- let appCheck;
120
- if (appCheckOptions && !appCheckKnowinglyDisabled) {
121
- // enable the debug tokens if not using emulators and allowDebugTokens is set true
122
- if (firebaseOptions.emulators?.useEmulators !== true && appCheckOptions.allowDebugTokens) {
123
- enableAppCheckDebugTokenGeneration(true);
124
- }
125
- // Only enabled outside of app-check environments. The emulators will not use appcheck.
126
- appCheck = initializeAppCheck(firebaseApp, {
127
- provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
128
- isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
129
- });
130
- console.log('Enabled AppCheck.');
131
- }
132
- else {
133
- appCheck = undefined;
134
- if (!appCheckKnowinglyDisabled) {
135
- console.error('dbx-firebase: No appcheck configuration for the app, and not specifically disabled in config either.');
136
- }
137
- }
138
- return appCheck;
139
- })
140
- ],
141
- providers: [
142
- {
143
- provide: HTTP_INTERCEPTORS,
144
- useClass: DbxFirebaseAppCheckHttpInterceptor,
145
- multi: true
146
- }
147
- ]
148
- }]
149
- }] });
150
- /**
151
- * Default firebase auth provider module.
152
- */
153
- export class DbxFirebaseDefaultAuthProviderModule {
154
- }
155
- DbxFirebaseDefaultAuthProviderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
156
- DbxFirebaseDefaultAuthProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [i3.AuthModule] });
157
- DbxFirebaseDefaultAuthProviderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [provideAuth((injector) => {
158
- const firebaseApp = injector.get(FirebaseApp);
159
- const auth = getAuth(firebaseApp);
160
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
161
- if (emulators?.useEmulators && emulators?.auth) {
162
- connectAuthEmulator(auth, `http://${emulators.auth.host}:${emulators.auth.port}`);
163
- }
164
- return auth;
165
- })] });
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, decorators: [{
167
- type: NgModule,
168
- args: [{
169
- imports: [
170
- provideAuth((injector) => {
171
- const firebaseApp = injector.get(FirebaseApp);
172
- const auth = getAuth(firebaseApp);
173
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
174
- if (emulators?.useEmulators && emulators?.auth) {
175
- connectAuthEmulator(auth, `http://${emulators.auth.host}:${emulators.auth.port}`);
176
- }
177
- return auth;
178
- })
179
- ]
180
- }]
181
- }] });
182
- /**
183
- * Default firebase storage provider module.
184
- */
185
- export class DbxFirebaseDefaultStorageProviderModule {
186
- }
187
- DbxFirebaseDefaultStorageProviderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
188
- DbxFirebaseDefaultStorageProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, imports: [i4.StorageModule] });
189
- DbxFirebaseDefaultStorageProviderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, imports: [provideStorage((injector) => {
190
- const firebaseApp = injector.get(FirebaseApp);
191
- const storage = getStorage(firebaseApp);
192
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
193
- if (emulators?.useEmulators && emulators?.storage) {
194
- connectStorageEmulator(storage, emulators.storage.host, emulators.storage.port, {});
195
- }
196
- return storage;
197
- })] });
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, decorators: [{
199
- type: NgModule,
200
- args: [{
201
- imports: [
202
- provideStorage((injector) => {
203
- const firebaseApp = injector.get(FirebaseApp);
204
- const storage = getStorage(firebaseApp);
205
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
206
- if (emulators?.useEmulators && emulators?.storage) {
207
- connectStorageEmulator(storage, emulators.storage.host, emulators.storage.port, {});
208
- }
209
- return storage;
210
- })
211
- ]
212
- }]
213
- }] });
214
- /**
215
- * Default firebase functions provider module.
216
- */
217
- export class DbxFirebaseDefaultFunctionsProviderModule {
218
- }
219
- DbxFirebaseDefaultFunctionsProviderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
220
- DbxFirebaseDefaultFunctionsProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, imports: [i5.FunctionsModule] });
221
- DbxFirebaseDefaultFunctionsProviderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, imports: [provideFunctions((injector) => {
222
- const firebaseApp = injector.get(FirebaseApp);
223
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
224
- const { functionsRegionOrCustomDomain } = firebaseOptions;
225
- const functions = getFunctions(firebaseApp, functionsRegionOrCustomDomain);
226
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
227
- if (emulators?.useEmulators && emulators?.functions) {
228
- connectFunctionsEmulator(functions, emulators.functions.host, emulators.functions.port);
229
- }
230
- return functions;
231
- })] });
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, decorators: [{
233
- type: NgModule,
234
- args: [{
235
- imports: [
236
- provideFunctions((injector) => {
237
- const firebaseApp = injector.get(FirebaseApp);
238
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
239
- const { functionsRegionOrCustomDomain } = firebaseOptions;
240
- const functions = getFunctions(firebaseApp, functionsRegionOrCustomDomain);
241
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
242
- if (emulators?.useEmulators && emulators?.functions) {
243
- connectFunctionsEmulator(functions, emulators.functions.host, emulators.functions.port);
244
- }
245
- return functions;
246
- })
247
- ]
248
- }]
249
- }] });
250
- /**
251
- * Default provider module.
252
- */
253
- export class DbxFirebaseDefaultFirebaseProvidersModule {
254
- static forRoot(firebaseOptions) {
255
- return {
256
- ngModule: DbxFirebaseDefaultFirebaseProvidersModule,
257
- providers: [
258
- {
259
- provide: DBX_FIREBASE_OPTIONS_TOKEN,
260
- useValue: firebaseOptions
261
- }
262
- ]
263
- };
264
- }
265
- }
266
- DbxFirebaseDefaultFirebaseProvidersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
267
- DbxFirebaseDefaultFirebaseProvidersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, imports: [i6.FirebaseAppModule, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDefaultFunctionsProviderModule] });
268
- DbxFirebaseDefaultFirebaseProvidersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, imports: [provideFirebaseApp((injector) => {
269
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
270
- return initializeApp(firebaseOptions);
271
- }),
272
- DbxFirebaseDefaultAppCheckProviderModule,
273
- DbxFirebaseDefaultFirestoreProviderModule,
274
- DbxFirebaseDefaultAuthProviderModule,
275
- DbxFirebaseDefaultStorageProviderModule,
276
- DbxFirebaseDefaultFunctionsProviderModule] });
277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, decorators: [{
278
- type: NgModule,
279
- args: [{
280
- imports: [
281
- provideFirebaseApp((injector) => {
282
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
283
- return initializeApp(firebaseOptions);
284
- }),
285
- DbxFirebaseDefaultAppCheckProviderModule,
286
- DbxFirebaseDefaultFirestoreProviderModule,
287
- DbxFirebaseDefaultAuthProviderModule,
288
- DbxFirebaseDefaultStorageProviderModule,
289
- DbxFirebaseDefaultFunctionsProviderModule
290
- ]
291
- }]
292
- }] });
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZmlyZWJhc2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBbUIsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkssT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFF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TUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBcUIsMEJBQTBCLENBQUMsQ0FBQzs0QkFDckYsT0FBTyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7d0JBQ3hDLENBQUMsQ0FBQzt3QkFDRix3Q0FBd0M7d0JBQ3hDLHlDQUF5Qzt3QkFDekMsb0NBQW9DO3dCQUNwQyx1Q0FBdUM7d0JBQ3ZDLHlDQUF5QztxQkFDMUM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpcmViYXNlT3B0aW9ucywgaW5pdGlhbGl6ZUFwcCB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBpbml0aWFsaXplQXBwQ2hlY2ssIFJlQ2FwdGNoYVYzUHJvdmlkZXIgfSBmcm9tICdmaXJlYmFzZS9hcHAtY2hlY2snO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHAsIHByb3ZpZGVGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJztcbmltcG9ydCB7IHByb3ZpZGVTdG9yYWdlLCBnZXRTdG9yYWdlLCBjb25uZWN0U3RvcmFnZUVtdWxhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9zdG9yYWdlJztcbmltcG9ydCB7IHByb3ZpZGVGdW5jdGlvbnMsIGdldEZ1bmN0aW9ucywgY29ubmVjdEZ1bmN0aW9uc0VtdWxhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgcHJvdmlkZUZpcmVzdG9yZSwgZ2V0RmlyZXN0b3JlLCBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IsIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlLCBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUF1dGgsIGdldEF1dGgsIGNvbm5lY3RBdXRoRW11bGF0b3IgfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHsgQXBwQ2hlY2ssIHByb3ZpZGVBcHBDaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwLWNoZWNrJztcbmltcG9ydCB7IERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnIH0gZnJvbSAnLi9lbXVsYXRvcnMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VPcHRpb25zLCBEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTiB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGVuYWJsZUFwcENoZWNrRGVidWdUb2tlbkdlbmVyYXRpb24gfSBmcm9tICcuLi9hdXRoL2FwcGNoZWNrJztcbmltcG9ydCB7IERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3IgfSBmcm9tICcuLi9hdXRoL2FwcGNoZWNrL2FwcGNoZWNrLmludGVyY2VwdG9yJztcblxuLy8gVE9ETzogcmVtb3ZlIFwiYXMgYW55XCIgdHlwZXNjcmlwdCBjYXN0aW5nIC0gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhcmZpcmUvaXNzdWVzLzMwODZcblxuLyoqXG4gKiBEZWZhdWx0IGZpcmViYXNlIGZpcmVzdG9yZSBwcm92aWRlciBtb2R1bGUuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBwcm92aWRlRmlyZXN0b3JlKCgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VPcHRpb25zPihEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTik7XG4gICAgICBjb25zdCBmaXJlc3RvcmUgPSBnZXRGaXJlc3RvcmUoZmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgZW11bGF0b3JzID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnPihEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZywgdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGVtdWxhdG9ycz8udXNlRW11bGF0b3JzICYmIGVtdWxhdG9ycz8uZmlyZXN0b3JlKSB7XG4gICAgICAgIGNvbm5lY3RGaXJlc3RvcmVFbXVsYXRvcihmaXJlc3RvcmUsIGVtdWxhdG9ycy5maXJlc3RvcmUuaG9zdCwgZW11bGF0b3JzLmZpcmVzdG9yZS5wb3J0LCB7fSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaXJlYmFzZU9wdGlvbnMuZW5hYmxlTXVsdGlUYWJJbmRleGVkRGJQZXJzaXN0ZW5jZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgZW5hYmxlTXVsdGlUYWJJbmRleGVkRGJQZXJzaXN0ZW5jZShmaXJlc3RvcmUpO1xuICAgICAgfSBlbHNlIGlmIChmaXJlYmFzZU9wdGlvbnMuZW5hYmxlSW5kZXhlZERiUGVyc2lzdGVuY2UgIT09IGZhbHNlKSB7XG4gICAgICAgIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKGZpcmVzdG9yZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaXJlc3RvcmU7XG4gICAgfSkgYXMgYW55KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGVmYXVsdEZpcmVzdG9yZVByb3ZpZGVyTW9kdWxlIHt9XG5cbi8qKlxuICogRGVmYXVsdCBmaXJlYmFzZSBhcHAgY2hlY2sgcHJvdmlkZXIgbW9kdWxlLlxuICpcbiAqIEFsc28gY29uZmlndXJlcyB0aGUgRGJ4RmlyZWJhc2VBcHBDaGVja0h0dHBJbnRlcmNlcHRvciB3aXRoIEhUVFBfSU5URVJDRVBUT1JTIGluIG9yZGVyIGZvciBhcHBDaGVjayB0byBiZSBhcHBlbmRlZCB0byByZXF1ZXN0cyB0byB0aGUgYXBpLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUFwcENoZWNrKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGZpcmViYXNlQXBwID0gaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGZpcmViYXNlT3B0aW9ucyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZU9wdGlvbnM+KERCWF9GSVJFQkFTRV9PUFRJT05TX1RPS0VOKTtcbiAgICAgIGNvbnN0IGFwcENoZWNrT3B0aW9ucyA9IGZpcmViYXNlT3B0aW9ucy5hcHBDaGVjaztcbiAgICAgIGNvbnN0IGFwcENoZWNrS25vd2luZ2x5RGlzYWJsZWQgPSBhcHBDaGVja09wdGlvbnM/LmRpc2FibGVkID09PSB0cnVlIHx8IGZpcmViYXNlT3B0aW9ucy5lbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyA9PT0gdHJ1ZTtcbiAgICAgIGxldCBhcHBDaGVjazogQXBwQ2hlY2s7XG5cbiAgICAgIGlmIChhcHBDaGVja09wdGlvbnMgJiYgIWFwcENoZWNrS25vd2luZ2x5RGlzYWJsZWQpIHtcbiAgICAgICAgLy8gZW5hYmxlIHRoZSBkZWJ1ZyB0b2tlbnMgaWYgbm90IHVzaW5nIGVtdWxhdG9ycyBhbmQgYWxsb3dEZWJ1Z1Rva2VucyBpcyBzZXQgdHJ1ZVxuICAgICAgICBpZiAoZmlyZWJhc2VPcHRpb25zLmVtdWxhdG9ycz8udXNlRW11bGF0b3JzICE9PSB0cnVlICYmIGFwcENoZWNrT3B0aW9ucy5hbGxvd0RlYnVnVG9rZW5zKSB7XG4gICAgICAgICAgZW5hYmxlQXBwQ2hlY2tEZWJ1Z1Rva2VuR2VuZXJhdGlvbih0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgZW5hYmxlZCBvdXRzaWRlIG9mIGFwcC1jaGVjayBlbnZpcm9ubWVudHMuIFRoZSBlbXVsYXRvcnMgd2lsbCBub3QgdXNlIGFwcGNoZWNrLlxuICAgICAgICBhcHBDaGVjayA9IGluaXRpYWxpemVBcHBDaGVjayhmaXJlYmFzZUFwcCwge1xuICAgICAgICAgIHByb3ZpZGVyOiBuZXcgUmVDYXB0Y2hhVjNQcm92aWRlcihhcHBDaGVja09wdGlvbnMucmVDYXB0Y2hhVjMpLFxuICAgICAgICAgIGlzVG9rZW5BdXRvUmVmcmVzaEVuYWJsZWQ6IGFwcENoZWNrT3B0aW9ucy5pc1Rva2VuQXV0b1JlZnJlc2hFbmFibGVkID8/IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJ0VuYWJsZWQgQXBwQ2hlY2suJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcHBDaGVjayA9IHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEFwcENoZWNrO1xuXG4gICAgICAgIGlmICghYXBwQ2hlY2tLbm93aW5nbHlEaXNhYmxlZCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2RieC1maXJlYmFzZTogTm8gYXBwY2hlY2sgY29uZmlndXJhdGlvbiBmb3IgdGhlIGFwcCwgYW5kIG5vdCBzcGVjaWZpY2FsbHkgZGlzYWJsZWQgaW4gY29uZmlnIGVpdGhlci4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXBwQ2hlY2s7XG4gICAgfSlcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICB1c2VDbGFzczogRGJ4RmlyZWJhc2VBcHBDaGVja0h0dHBJbnRlcmNlcHRvcixcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGVmYXVsdEFwcENoZWNrUHJvdmlkZXJNb2R1bGUge31cblxuLyoqXG4gKiBEZWZhdWx0IGZpcmViYXNlIGF1dGggcHJvdmlkZXIgbW9kdWxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUF1dGgoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgYXV0aCA9IGdldEF1dGgoZmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgZW11bGF0b3JzID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnPihEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZywgdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGVtdWxhdG9ycz8udXNlRW11bGF0b3JzICYmIGVtdWxhdG9ycz8uYXV0aCkge1xuICAgICAgICBjb25uZWN0QXV0aEVtdWxhdG9yKGF1dGgsIGBodHRwOi8vJHtlbXVsYXRvcnMuYXV0aC5ob3N0fToke2VtdWxhdG9ycy5hdXRoLnBvcnR9YCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdXRoO1xuICAgIH0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VEZWZhdWx0QXV0aFByb3ZpZGVyTW9kdWxlIHt9XG5cbi8qKlxuICogRGVmYXVsdCBmaXJlYmFzZSBzdG9yYWdlIHByb3ZpZGVyIG1vZHVsZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIHByb3ZpZGVTdG9yYWdlKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGZpcmViYXNlQXBwID0gaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBnZXRTdG9yYWdlKGZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LnN0b3JhZ2UpIHtcbiAgICAgICAgY29ubmVjdFN0b3JhZ2VFbXVsYXRvcihzdG9yYWdlLCBlbXVsYXRvcnMuc3RvcmFnZS5ob3N0LCBlbXVsYXRvcnMuc3RvcmFnZS5wb3J0LCB7fSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdG9yYWdlO1xuICAgIH0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VEZWZhdWx0U3RvcmFnZVByb3ZpZGVyTW9kdWxlIHt9XG5cbi8qKlxuICogRGVmYXVsdCBmaXJlYmFzZSBmdW5jdGlvbnMgcHJvdmlkZXIgbW9kdWxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUZ1bmN0aW9ucygoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VPcHRpb25zPihEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTik7XG4gICAgICBjb25zdCB7IGZ1bmN0aW9uc1JlZ2lvbk9yQ3VzdG9tRG9tYWluIH0gPSBmaXJlYmFzZU9wdGlvbnM7XG5cbiAgICAgIGNvbnN0IGZ1bmN0aW9ucyA9IGdldEZ1bmN0aW9ucyhmaXJlYmFzZUFwcCwgZnVuY3Rpb25zUmVnaW9uT3JDdXN0b21Eb21haW4pO1xuICAgICAgY29uc3QgZW11bGF0b3JzID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnPihEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZywgdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGVtdWxhdG9ycz8udXNlRW11bGF0b3JzICYmIGVtdWxhdG9ycz8uZnVuY3Rpb25zKSB7XG4gICAgICAgIGNvbm5lY3RGdW5jdGlvbnNFbXVsYXRvcihmdW5jdGlvbnMsIGVtdWxhdG9ycy5mdW5jdGlvbnMuaG9zdCwgZW11bGF0b3JzLmZ1bmN0aW9ucy5wb3J0KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZ1bmN0aW9ucztcbiAgICB9KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGVmYXVsdEZ1bmN0aW9uc1Byb3ZpZGVyTW9kdWxlIHt9XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aWRlciBtb2R1bGUuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBwcm92aWRlRmlyZWJhc2VBcHAoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VPcHRpb25zID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlT3B0aW9ucz4oREJYX0ZJUkVCQVNFX09QVElPTlNfVE9LRU4pO1xuICAgICAgcmV0dXJuIGluaXRpYWxpemVBcHAoZmlyZWJhc2VPcHRpb25zKTtcbiAgICB9KSxcbiAgICBEYnhGaXJlYmFzZURlZmF1bHRBcHBDaGVja1Byb3ZpZGVyTW9kdWxlLFxuICAgIERieEZpcmViYXNlRGVmYXVsdEZpcmVzdG9yZVByb3ZpZGVyTW9kdWxlLFxuICAgIERieEZpcmViYXNlRGVmYXVsdEF1dGhQcm92aWRlck1vZHVsZSxcbiAgICBEYnhGaXJlYmFzZURlZmF1bHRTdG9yYWdlUHJvdmlkZXJNb2R1bGUsXG4gICAgRGJ4RmlyZWJhc2VEZWZhdWx0RnVuY3Rpb25zUHJvdmlkZXJNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRGaXJlYmFzZVByb3ZpZGVyc01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGZpcmViYXNlT3B0aW9uczogRmlyZWJhc2VPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYnhGaXJlYmFzZURlZmF1bHRGaXJlYmFzZVByb3ZpZGVyc01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRGJ4RmlyZWJhc2VEZWZhdWx0RmlyZWJhc2VQcm92aWRlcnNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IERCWF9GSVJFQkFTRV9PUFRJT05TX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiBmaXJlYmFzZU9wdGlvbnNcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==