@angular/fire 18.0.1-canary.f379433 → 19.0.0-canary.45ccd39

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 (275) hide show
  1. package/README.md +2 -2
  2. package/analytics/analytics.module.d.ts +2 -2
  3. package/analytics/firebase.d.ts +2 -2
  4. package/analytics/screen-tracking.service.d.ts +1 -1
  5. package/compat/database/database.d.ts +1 -1
  6. package/compat/firestore/firestore.d.ts +1 -1
  7. package/compat/storage/pipes/storageUrl.pipe.d.ts +2 -2
  8. package/compat/storage/storage.d.ts +1 -1
  9. package/compat/storage/storage.module.d.ts +1 -1
  10. package/data-connect/data-connect.d.ts +9 -0
  11. package/data-connect/data-connect.module.d.ts +13 -0
  12. package/data-connect/firebase.d.ts +12 -0
  13. package/{vertexai-preview → data-connect}/index.d.ts +1 -1
  14. package/data-connect/package.json +3 -0
  15. package/data-connect/public_api.d.ts +3 -0
  16. package/docs/install-and-setup.md +10 -5
  17. package/docs/vertexai.md +3 -3
  18. package/fesm2022/angular-fire-analytics.mjs +24 -51
  19. package/fesm2022/angular-fire-analytics.mjs.map +1 -1
  20. package/fesm2022/angular-fire-app-check.mjs +4 -4
  21. package/fesm2022/angular-fire-app-check.mjs.map +1 -1
  22. package/fesm2022/angular-fire-app.mjs +4 -4
  23. package/fesm2022/angular-fire-app.mjs.map +1 -1
  24. package/fesm2022/angular-fire-auth-guard.mjs +7 -7
  25. package/fesm2022/angular-fire-auth-guard.mjs.map +1 -1
  26. package/fesm2022/angular-fire-auth.mjs +5 -5
  27. package/fesm2022/angular-fire-auth.mjs.map +1 -1
  28. package/fesm2022/angular-fire-compat-analytics.mjs +15 -15
  29. package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -1
  30. package/fesm2022/angular-fire-compat-auth-guard.mjs +7 -7
  31. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -1
  32. package/fesm2022/angular-fire-compat-auth.mjs +10 -9
  33. package/fesm2022/angular-fire-compat-auth.mjs.map +1 -1
  34. package/fesm2022/angular-fire-compat-database.mjs +20 -19
  35. package/fesm2022/angular-fire-compat-database.mjs.map +1 -1
  36. package/fesm2022/angular-fire-compat-firestore.mjs +23 -22
  37. package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
  38. package/fesm2022/angular-fire-compat-functions.mjs +7 -7
  39. package/fesm2022/angular-fire-compat-functions.mjs.map +1 -1
  40. package/fesm2022/angular-fire-compat-messaging.mjs +7 -7
  41. package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -1
  42. package/fesm2022/angular-fire-compat-performance.mjs +10 -10
  43. package/fesm2022/angular-fire-compat-performance.mjs.map +1 -1
  44. package/fesm2022/angular-fire-compat-remote-config.mjs +10 -9
  45. package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -1
  46. package/fesm2022/angular-fire-compat-storage.mjs +20 -18
  47. package/fesm2022/angular-fire-compat-storage.mjs.map +1 -1
  48. package/fesm2022/angular-fire-compat.mjs +4 -4
  49. package/fesm2022/angular-fire-compat.mjs.map +1 -1
  50. package/fesm2022/angular-fire-data-connect.mjs +100 -0
  51. package/fesm2022/angular-fire-data-connect.mjs.map +1 -0
  52. package/fesm2022/angular-fire-database.mjs +4 -4
  53. package/fesm2022/angular-fire-database.mjs.map +1 -1
  54. package/fesm2022/angular-fire-firestore-lite.mjs +7 -6
  55. package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -1
  56. package/fesm2022/angular-fire-firestore.mjs +7 -6
  57. package/fesm2022/angular-fire-firestore.mjs.map +1 -1
  58. package/fesm2022/angular-fire-functions.mjs +4 -4
  59. package/fesm2022/angular-fire-functions.mjs.map +1 -1
  60. package/fesm2022/angular-fire-messaging.mjs +15 -42
  61. package/fesm2022/angular-fire-messaging.mjs.map +1 -1
  62. package/fesm2022/angular-fire-performance.mjs +4 -4
  63. package/fesm2022/angular-fire-performance.mjs.map +1 -1
  64. package/fesm2022/angular-fire-remote-config.mjs +16 -43
  65. package/fesm2022/angular-fire-remote-config.mjs.map +1 -1
  66. package/fesm2022/angular-fire-storage.mjs +4 -4
  67. package/fesm2022/angular-fire-storage.mjs.map +1 -1
  68. package/fesm2022/{angular-fire-vertexai-preview.mjs → angular-fire-vertexai.mjs} +7 -7
  69. package/fesm2022/angular-fire-vertexai.mjs.map +1 -0
  70. package/fesm2022/angular-fire.mjs +84 -68
  71. package/fesm2022/angular-fire.mjs.map +1 -1
  72. package/firestore/firebase.d.ts +2 -1
  73. package/firestore/lite/firebase.d.ts +2 -1
  74. package/messaging/firebase.d.ts +2 -2
  75. package/messaging/messaging.module.d.ts +2 -2
  76. package/package.json +21 -76
  77. package/remote-config/firebase.d.ts +2 -2
  78. package/remote-config/remote-config.module.d.ts +2 -2
  79. package/schematics/add/index.js +1 -13
  80. package/schematics/deploy/actions.js +138 -394
  81. package/schematics/deploy/builder.js +139 -61
  82. package/schematics/setup/index.js +94 -64
  83. package/schematics/update/index.js +1 -7
  84. package/schematics/update/v7/index.js +1 -67
  85. package/schematics/versions.json +2 -3
  86. package/{vertexai-preview → vertexai}/firebase.d.ts +2 -2
  87. package/vertexai/index.d.ts +5 -0
  88. package/vertexai/package.json +3 -0
  89. package/{vertexai-preview → vertexai}/vertexai.d.ts +1 -1
  90. package/{vertexai-preview → vertexai}/vertexai.module.d.ts +1 -1
  91. package/zones.d.ts +1 -12
  92. package/analytics/is-analytics-supported-factory.d.ts +0 -4
  93. package/analytics/overrides.d.ts +0 -1
  94. package/esm2022/analytics/analytics.mjs +0 -16
  95. package/esm2022/analytics/analytics.module.mjs +0 -101
  96. package/esm2022/analytics/angular-fire-analytics.mjs +0 -5
  97. package/esm2022/analytics/firebase.mjs +0 -17
  98. package/esm2022/analytics/is-analytics-supported-factory.mjs +0 -16
  99. package/esm2022/analytics/overrides.mjs +0 -3
  100. package/esm2022/analytics/public_api.mjs +0 -6
  101. package/esm2022/analytics/screen-tracking.service.mjs +0 -148
  102. package/esm2022/analytics/user-tracking.service.mjs +0 -44
  103. package/esm2022/angular-fire.mjs +0 -5
  104. package/esm2022/app/angular-fire-app.mjs +0 -5
  105. package/esm2022/app/app.mjs +0 -15
  106. package/esm2022/app/app.module.mjs +0 -91
  107. package/esm2022/app/firebase.mjs +0 -13
  108. package/esm2022/app/public_api.mjs +0 -4
  109. package/esm2022/app-check/angular-fire-app-check.mjs +0 -5
  110. package/esm2022/app-check/app-check.mjs +0 -10
  111. package/esm2022/app-check/app-check.module.mjs +0 -80
  112. package/esm2022/app-check/firebase.mjs +0 -10
  113. package/esm2022/app-check/public_api.mjs +0 -5
  114. package/esm2022/auth/angular-fire-auth.mjs +0 -5
  115. package/esm2022/auth/auth.mjs +0 -16
  116. package/esm2022/auth/auth.module.mjs +0 -73
  117. package/esm2022/auth/firebase.mjs +0 -59
  118. package/esm2022/auth/public_api.mjs +0 -5
  119. package/esm2022/auth/rxfire.mjs +0 -7
  120. package/esm2022/auth-guard/angular-fire-auth-guard.mjs +0 -5
  121. package/esm2022/auth-guard/auth-guard.mjs +0 -53
  122. package/esm2022/auth-guard/auth-guard.module.mjs +0 -20
  123. package/esm2022/auth-guard/public_api.mjs +0 -3
  124. package/esm2022/compat/analytics/analytics.mjs +0 -160
  125. package/esm2022/compat/analytics/analytics.module.mjs +0 -35
  126. package/esm2022/compat/analytics/angular-fire-compat-analytics.mjs +0 -5
  127. package/esm2022/compat/analytics/base.mjs +0 -11
  128. package/esm2022/compat/analytics/public_api.mjs +0 -5
  129. package/esm2022/compat/analytics/screen-tracking.service.mjs +0 -49
  130. package/esm2022/compat/analytics/user-tracking.service.mjs +0 -53
  131. package/esm2022/compat/angular-fire-compat.mjs +0 -5
  132. package/esm2022/compat/auth/angular-fire-compat-auth.mjs +0 -5
  133. package/esm2022/compat/auth/auth.mjs +0 -161
  134. package/esm2022/compat/auth/auth.module.mjs +0 -20
  135. package/esm2022/compat/auth/base.mjs +0 -39
  136. package/esm2022/compat/auth/public_api.mjs +0 -4
  137. package/esm2022/compat/auth-guard/angular-fire-compat-auth-guard.mjs +0 -5
  138. package/esm2022/compat/auth-guard/auth-guard.mjs +0 -53
  139. package/esm2022/compat/auth-guard/auth-guard.module.mjs +0 -20
  140. package/esm2022/compat/auth-guard/public_api.mjs +0 -3
  141. package/esm2022/compat/cache.mjs +0 -33
  142. package/esm2022/compat/database/angular-fire-compat-database.mjs +0 -5
  143. package/esm2022/compat/database/database.mjs +0 -119
  144. package/esm2022/compat/database/database.module.mjs +0 -20
  145. package/esm2022/compat/database/interfaces.mjs +0 -2
  146. package/esm2022/compat/database/list/audit-trail.mjs +0 -47
  147. package/esm2022/compat/database/list/changes.mjs +0 -85
  148. package/esm2022/compat/database/list/create-reference.mjs +0 -44
  149. package/esm2022/compat/database/list/data-operation.mjs +0 -11
  150. package/esm2022/compat/database/list/remove.mjs +0 -16
  151. package/esm2022/compat/database/list/snapshot-changes.mjs +0 -7
  152. package/esm2022/compat/database/list/state-changes.mjs +0 -9
  153. package/esm2022/compat/database/list/utils.mjs +0 -8
  154. package/esm2022/compat/database/object/create-reference.mjs +0 -19
  155. package/esm2022/compat/database/object/snapshot-changes.mjs +0 -7
  156. package/esm2022/compat/database/observable/fromRef.mjs +0 -48
  157. package/esm2022/compat/database/public_api.mjs +0 -9
  158. package/esm2022/compat/database/utils.mjs +0 -36
  159. package/esm2022/compat/firebase.app.mjs +0 -6
  160. package/esm2022/compat/firebase.app.module.mjs +0 -71
  161. package/esm2022/compat/firestore/angular-fire-compat-firestore.mjs +0 -5
  162. package/esm2022/compat/firestore/collection/changes.mjs +0 -108
  163. package/esm2022/compat/firestore/collection/collection.mjs +0 -123
  164. package/esm2022/compat/firestore/collection-group/collection-group.mjs +0 -86
  165. package/esm2022/compat/firestore/document/document.mjs +0 -87
  166. package/esm2022/compat/firestore/firestore.mjs +0 -257
  167. package/esm2022/compat/firestore/firestore.module.mjs +0 -32
  168. package/esm2022/compat/firestore/interfaces.mjs +0 -2
  169. package/esm2022/compat/firestore/observable/fromRef.mjs +0 -40
  170. package/esm2022/compat/firestore/public_api.mjs +0 -9
  171. package/esm2022/compat/functions/angular-fire-compat-functions.mjs +0 -5
  172. package/esm2022/compat/functions/base.mjs +0 -8
  173. package/esm2022/compat/functions/functions.mjs +0 -69
  174. package/esm2022/compat/functions/functions.module.mjs +0 -20
  175. package/esm2022/compat/functions/public_api.mjs +0 -4
  176. package/esm2022/compat/messaging/angular-fire-compat-messaging.mjs +0 -5
  177. package/esm2022/compat/messaging/base.mjs +0 -9
  178. package/esm2022/compat/messaging/messaging.mjs +0 -81
  179. package/esm2022/compat/messaging/messaging.module.mjs +0 -20
  180. package/esm2022/compat/messaging/public_api.mjs +0 -3
  181. package/esm2022/compat/performance/angular-fire-compat-performance.mjs +0 -5
  182. package/esm2022/compat/performance/base.mjs +0 -9
  183. package/esm2022/compat/performance/performance.mjs +0 -105
  184. package/esm2022/compat/performance/performance.module.mjs +0 -27
  185. package/esm2022/compat/performance/performance.service.mjs +0 -28
  186. package/esm2022/compat/performance/public_api.mjs +0 -4
  187. package/esm2022/compat/proxy.mjs +0 -58
  188. package/esm2022/compat/public_api.mjs +0 -5
  189. package/esm2022/compat/remote-config/angular-fire-compat-remote-config.mjs +0 -5
  190. package/esm2022/compat/remote-config/base.mjs +0 -20
  191. package/esm2022/compat/remote-config/interfaces.mjs +0 -2
  192. package/esm2022/compat/remote-config/public_api.mjs +0 -3
  193. package/esm2022/compat/remote-config/remote-config.mjs +0 -206
  194. package/esm2022/compat/remote-config/remote-config.module.mjs +0 -20
  195. package/esm2022/compat/storage/angular-fire-compat-storage.mjs +0 -5
  196. package/esm2022/compat/storage/interfaces.mjs +0 -2
  197. package/esm2022/compat/storage/observable/fromTask.mjs +0 -36
  198. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +0 -56
  199. package/esm2022/compat/storage/public_api.mjs +0 -7
  200. package/esm2022/compat/storage/ref.mjs +0 -28
  201. package/esm2022/compat/storage/storage.mjs +0 -95
  202. package/esm2022/compat/storage/storage.module.mjs +0 -22
  203. package/esm2022/compat/storage/task.mjs +0 -21
  204. package/esm2022/core.mjs +0 -43
  205. package/esm2022/database/angular-fire-database.mjs +0 -5
  206. package/esm2022/database/database.mjs +0 -16
  207. package/esm2022/database/database.module.mjs +0 -76
  208. package/esm2022/database/firebase.mjs +0 -44
  209. package/esm2022/database/public_api.mjs +0 -5
  210. package/esm2022/database/rxfire.mjs +0 -13
  211. package/esm2022/firestore/angular-fire-firestore.mjs +0 -5
  212. package/esm2022/firestore/firebase.mjs +0 -73
  213. package/esm2022/firestore/firestore.mjs +0 -16
  214. package/esm2022/firestore/firestore.module.mjs +0 -76
  215. package/esm2022/firestore/lite/angular-fire-firestore-lite.mjs +0 -5
  216. package/esm2022/firestore/lite/firebase.mjs +0 -48
  217. package/esm2022/firestore/lite/lite.mjs +0 -16
  218. package/esm2022/firestore/lite/lite.module.mjs +0 -75
  219. package/esm2022/firestore/lite/public_api.mjs +0 -5
  220. package/esm2022/firestore/lite/rxfire.mjs +0 -12
  221. package/esm2022/firestore/public_api.mjs +0 -5
  222. package/esm2022/firestore/rxfire.mjs +0 -15
  223. package/esm2022/functions/angular-fire-functions.mjs +0 -5
  224. package/esm2022/functions/firebase.mjs +0 -9
  225. package/esm2022/functions/functions.mjs +0 -16
  226. package/esm2022/functions/functions.module.mjs +0 -76
  227. package/esm2022/functions/public_api.mjs +0 -5
  228. package/esm2022/functions/rxfire.mjs +0 -5
  229. package/esm2022/messaging/angular-fire-messaging.mjs +0 -5
  230. package/esm2022/messaging/firebase.mjs +0 -10
  231. package/esm2022/messaging/is-messaging-supported-factory.mjs +0 -16
  232. package/esm2022/messaging/messaging.mjs +0 -16
  233. package/esm2022/messaging/messaging.module.mjs +0 -93
  234. package/esm2022/messaging/overrides.mjs +0 -3
  235. package/esm2022/messaging/public_api.mjs +0 -4
  236. package/esm2022/performance/angular-fire-performance.mjs +0 -5
  237. package/esm2022/performance/firebase.mjs +0 -8
  238. package/esm2022/performance/performance.mjs +0 -16
  239. package/esm2022/performance/performance.module.mjs +0 -83
  240. package/esm2022/performance/public_api.mjs +0 -5
  241. package/esm2022/performance/rxfire.mjs +0 -8
  242. package/esm2022/public_api.mjs +0 -3
  243. package/esm2022/remote-config/angular-fire-remote-config.mjs +0 -5
  244. package/esm2022/remote-config/firebase.mjs +0 -17
  245. package/esm2022/remote-config/is-remote-config-supported-factory.mjs +0 -16
  246. package/esm2022/remote-config/overrides.mjs +0 -3
  247. package/esm2022/remote-config/public_api.mjs +0 -5
  248. package/esm2022/remote-config/remote-config.mjs +0 -16
  249. package/esm2022/remote-config/remote-config.module.mjs +0 -93
  250. package/esm2022/remote-config/rxfire.mjs +0 -9
  251. package/esm2022/storage/angular-fire-storage.mjs +0 -5
  252. package/esm2022/storage/firebase.mjs +0 -20
  253. package/esm2022/storage/public_api.mjs +0 -5
  254. package/esm2022/storage/rxfire.mjs +0 -6
  255. package/esm2022/storage/storage.mjs +0 -16
  256. package/esm2022/storage/storage.module.mjs +0 -76
  257. package/esm2022/vertexai-preview/angular-fire-vertexai-preview.mjs +0 -5
  258. package/esm2022/vertexai-preview/firebase.mjs +0 -7
  259. package/esm2022/vertexai-preview/public_api.mjs +0 -4
  260. package/esm2022/vertexai-preview/vertexai.mjs +0 -16
  261. package/esm2022/vertexai-preview/vertexai.module.mjs +0 -73
  262. package/esm2022/zones.mjs +0 -174
  263. package/fesm2022/angular-fire-vertexai-preview.mjs.map +0 -1
  264. package/messaging/is-messaging-supported-factory.d.ts +0 -4
  265. package/messaging/overrides.d.ts +0 -1
  266. package/remote-config/is-remote-config-supported-factory.d.ts +0 -4
  267. package/remote-config/overrides.d.ts +0 -1
  268. package/schematics/common.js +0 -81
  269. package/schematics/deploy/functions-templates.js +0 -57
  270. package/schematics/firebaseTools.js +0 -78
  271. package/schematics/interfaces.js +0 -16
  272. package/schematics/setup/prompts.js +0 -195
  273. package/schematics/utils.js +0 -189
  274. package/vertexai-preview/package.json +0 -3
  275. /package/{vertexai-preview → vertexai}/public_api.d.ts +0 -0
package/esm2022/zones.mjs DELETED
@@ -1,174 +0,0 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment */
2
- import { ExperimentalPendingTasks, Injectable, NgZone } from '@angular/core';
3
- import { Observable, asyncScheduler, queueScheduler } from 'rxjs';
4
- import { observeOn, subscribeOn, tap } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Schedules tasks so that they are invoked inside the Zone that is passed in the constructor.
8
- */
9
- export class ɵZoneScheduler {
10
- zone;
11
- delegate;
12
- constructor(zone, delegate = queueScheduler) {
13
- this.zone = zone;
14
- this.delegate = delegate;
15
- }
16
- now() {
17
- return this.delegate.now();
18
- }
19
- schedule(work, delay, state) {
20
- const targetZone = this.zone;
21
- // Wrap the specified work function to make sure that if nested scheduling takes place the
22
- // work is executed in the correct zone
23
- const workInZone = function (state) {
24
- if (targetZone) {
25
- targetZone.runGuarded(() => {
26
- work.apply(this, [state]);
27
- });
28
- }
29
- else {
30
- work.apply(this, [state]);
31
- }
32
- };
33
- // Scheduling itself needs to be run in zone to ensure setInterval calls for async scheduling are done
34
- // inside the correct zone. This scheduler needs to schedule asynchronously always to ensure that
35
- // firebase emissions are never synchronous. Specifying a delay causes issues with the queueScheduler delegate.
36
- return this.delegate.schedule(workInZone, delay, state);
37
- }
38
- }
39
- class BlockUntilFirstOperator {
40
- zone;
41
- pendingTasks;
42
- constructor(zone, pendingTasks) {
43
- this.zone = zone;
44
- this.pendingTasks = pendingTasks;
45
- }
46
- call(subscriber, source) {
47
- const taskDone = this.zone.run(() => this.pendingTasks.add());
48
- // maybe this is a race condition, invoke in a timeout
49
- // hold for 10ms while I try to figure out what is going on
50
- const unscheduleTask = () => setTimeout(taskDone, 10);
51
- return source.pipe(tap({ next: unscheduleTask, complete: unscheduleTask, error: unscheduleTask })).subscribe(subscriber).add(unscheduleTask);
52
- }
53
- }
54
- export class ɵAngularFireSchedulers {
55
- ngZone;
56
- pendingTasks;
57
- outsideAngular;
58
- insideAngular;
59
- constructor(ngZone, pendingTasks) {
60
- this.ngZone = ngZone;
61
- this.pendingTasks = pendingTasks;
62
- this.outsideAngular = ngZone.runOutsideAngular(() => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current));
63
- this.insideAngular = ngZone.run(() => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current, asyncScheduler));
64
- globalThis.ɵAngularFireScheduler ||= this;
65
- }
66
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, deps: [{ token: i0.NgZone }, { token: i0.ExperimentalPendingTasks }], target: i0.ɵɵFactoryTarget.Injectable });
67
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, providedIn: 'root' });
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, decorators: [{
70
- type: Injectable,
71
- args: [{
72
- providedIn: 'root',
73
- }]
74
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ExperimentalPendingTasks }] });
75
- function getSchedulers() {
76
- const schedulers = globalThis.ɵAngularFireScheduler;
77
- if (!schedulers) {
78
- throw new Error(`Either AngularFireModule has not been provided in your AppModule (this can be done manually or implictly using
79
- provideFirebaseApp) or you're calling an AngularFire method outside of an NgModule (which is not supported).`);
80
- }
81
- return schedulers;
82
- }
83
- function runOutsideAngular(fn) {
84
- return getSchedulers().ngZone.runOutsideAngular(() => fn());
85
- }
86
- function run(fn) {
87
- return getSchedulers().ngZone.run(() => fn());
88
- }
89
- export function observeOutsideAngular(obs$) {
90
- return obs$.pipe(observeOn(getSchedulers().outsideAngular));
91
- }
92
- export function observeInsideAngular(obs$) {
93
- return obs$.pipe(observeOn(getSchedulers().insideAngular));
94
- }
95
- export function keepUnstableUntilFirst(obs$) {
96
- return ɵkeepUnstableUntilFirstFactory(getSchedulers())(obs$);
97
- }
98
- /**
99
- * Operator to block the zone until the first value has been emitted or the observable
100
- * has completed/errored. This is used to make sure that universal waits until the first
101
- * value from firebase but doesn't block the zone forever since the firebase subscription
102
- * is still alive.
103
- */
104
- export function ɵkeepUnstableUntilFirstFactory(schedulers) {
105
- return function keepUnstableUntilFirst(obs$) {
106
- obs$ = obs$.lift(new BlockUntilFirstOperator(schedulers.ngZone, schedulers.pendingTasks));
107
- return obs$.pipe(
108
- // Run the subscribe body outside of Angular (e.g. calling Firebase SDK to add a listener to a change event)
109
- subscribeOn(schedulers.outsideAngular),
110
- // Run operators inside the angular zone (e.g. side effects via tap())
111
- observeOn(schedulers.insideAngular)
112
- // INVESTIGATE https://github.com/angular/angularfire/pull/2315
113
- // share()
114
- );
115
- };
116
- }
117
- const zoneWrapFn = (it, taskDone) => {
118
- return (...args) => {
119
- if (taskDone) {
120
- setTimeout(taskDone, 10);
121
- }
122
- return run(() => it.apply(this, args));
123
- };
124
- };
125
- export const ɵzoneWrap = (it, blockUntilFirst) => {
126
- // function() is needed for the arguments object
127
- return function () {
128
- let taskDone;
129
- const _arguments = arguments;
130
- // if this is a callback function, e.g, onSnapshot, we should create a pending task and complete it
131
- // only once one of the callback functions is tripped.
132
- for (let i = 0; i < arguments.length; i++) {
133
- if (typeof _arguments[i] === 'function') {
134
- if (blockUntilFirst) {
135
- taskDone ||= run(() => getSchedulers().pendingTasks.add());
136
- }
137
- // TODO create a microtask to track callback functions
138
- _arguments[i] = zoneWrapFn(_arguments[i], taskDone);
139
- }
140
- }
141
- const ret = runOutsideAngular(() => it.apply(this, _arguments));
142
- if (!blockUntilFirst) {
143
- if (ret instanceof Observable) {
144
- const schedulers = getSchedulers();
145
- return ret.pipe(subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
146
- }
147
- else {
148
- return run(() => ret);
149
- }
150
- }
151
- if (ret instanceof Observable) {
152
- return ret.pipe(keepUnstableUntilFirst);
153
- }
154
- else if (ret instanceof Promise) {
155
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
156
- return run(() => new Promise((resolve, reject) => {
157
- ret.then((it) => run(() => resolve(it)), (reason) => run(() => reject(reason)));
158
- }));
159
- }
160
- else if (typeof ret === 'function' && taskDone) {
161
- // Handle unsubscribe
162
- // function() is needed for the arguments object
163
- return function () {
164
- setTimeout(taskDone, 10);
165
- return ret.apply(this, arguments);
166
- };
167
- }
168
- else {
169
- // TODO how do we handle storage uploads in Zone? and other stuff with cancel() etc?
170
- return run(() => ret);
171
- }
172
- };
173
- };
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvem9uZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsVUFBVSxFQU9WLGNBQWMsRUFDZCxjQUFjLEVBQ2YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJN0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUNMO0lBQW1CO0lBQXZDLFlBQW9CLElBQVMsRUFBVSxXQUFnQixjQUFjO1FBQWpELFNBQUksR0FBSixJQUFJLENBQUs7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUNyRSxDQUFDO0lBRUQsR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQXVELEVBQUUsS0FBYyxFQUFFLEtBQVc7UUFDM0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3QiwwRkFBMEY7UUFDMUYsdUNBQXVDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLFVBQXFDLEtBQVU7WUFDaEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMs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aW50L2Jhbi10cy1jb21tZW50ICovXG5pbXBvcnQge1xuICBFeHBlcmltZW50YWxQZW5kaW5nVGFza3MsXG4gIEluamVjdGFibGUsXG4gIE5nWm9uZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIE9wZXJhdG9yLFxuICBTY2hlZHVsZXJBY3Rpb24sXG4gIFNjaGVkdWxlckxpa2UsXG4gIFN1YnNjcmliZXIsXG4gIFN1YnNjcmlwdGlvbixcbiAgVGVhcmRvd25Mb2dpYyxcbiAgYXN5bmNTY2hlZHVsZXIsXG4gIHF1ZXVlU2NoZWR1bGVyXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCBzdWJzY3JpYmVPbiwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5kZWNsYXJlIGNvbnN0IFpvbmU6IHtjdXJyZW50OiB1bmtub3dufSB8IHVuZGVmaW5lZDsgXG5cbi8qKlxuICogU2NoZWR1bGVzIHRhc2tzIHNvIHRoYXQgdGhleSBhcmUgaW52b2tlZCBpbnNpZGUgdGhlIFpvbmUgdGhhdCBpcyBwYXNzZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgY2xhc3MgybVab25lU2NoZWR1bGVyIGltcGxlbWVudHMgU2NoZWR1bGVyTGlrZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogYW55LCBwcml2YXRlIGRlbGVnYXRlOiBhbnkgPSBxdWV1ZVNjaGVkdWxlcikge1xuICB9XG5cbiAgbm93KCkge1xuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLm5vdygpO1xuICB9XG5cbiAgc2NoZWR1bGUod29yazogKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxhbnk+LCBzdGF0ZT86IGFueSkgPT4gdm9pZCwgZGVsYXk/OiBudW1iZXIsIHN0YXRlPzogYW55KTogU3Vic2NyaXB0aW9uIHtcbiAgICBjb25zdCB0YXJnZXRab25lID0gdGhpcy56b25lO1xuICAgIC8vIFdyYXAgdGhlIHNwZWNpZmllZCB3b3JrIGZ1bmN0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IGlmIG5lc3RlZCBzY2hlZHVsaW5nIHRha2VzIHBsYWNlIHRoZVxuICAgIC8vIHdvcmsgaXMgZXhlY3V0ZWQgaW4gdGhlIGNvcnJlY3Qgem9uZVxuICAgIGNvbnN0IHdvcmtJblpvbmUgPSBmdW5jdGlvbih0aGlzOiBTY2hlZHVsZXJBY3Rpb248YW55Piwgc3RhdGU6IGFueSkge1xuICAgICAgaWYgKHRhcmdldFpvbmUpIHtcbiAgICAgICAgdGFyZ2V0Wm9uZS5ydW5HdWFyZGVkKCgpID0+IHtcbiAgICAgICAgICB3b3JrLmFwcGx5KHRoaXMsIFtzdGF0ZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdvcmsuYXBwbHkodGhpcywgW3N0YXRlXSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFNjaGVkdWxpbmcgaXRzZWxmIG5lZWRzIHRvIGJlIHJ1biBpbiB6b25lIHRvIGVuc3VyZSBzZXRJbnRlcnZhbCBjYWxscyBmb3IgYXN5bmMgc2NoZWR1bGluZyBhcmUgZG9uZVxuICAgIC8vIGluc2lkZSB0aGUgY29ycmVjdCB6b25lLiBUaGlzIHNjaGVkdWxlciBuZWVkcyB0byBzY2hlZHVsZSBhc3luY2hyb25vdXNseSBhbHdheXMgdG8gZW5zdXJlIHRoYXRcbiAgICAvLyBmaXJlYmFzZSBlbWlzc2lvbnMgYXJlIG5ldmVyIHN5bmNocm9ub3VzLiBTcGVjaWZ5aW5nIGEgZGVsYXkgY2F1c2VzIGlzc3VlcyB3aXRoIHRoZSBxdWV1ZVNjaGVkdWxlciBkZWxlZ2F0ZS5cbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zY2hlZHVsZSh3b3JrSW5ab25lLCBkZWxheSwgc3RhdGUpO1xuICB9XG59XG5cbmNsYXNzIEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHpvbmU6IGFueSxcbiAgICBwcml2YXRlIHBlbmRpbmdUYXNrczogRXhwZXJpbWVudGFsUGVuZGluZ1Rhc2tzXG4gICkge31cblxuICBjYWxsKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VD4sIHNvdXJjZTogT2JzZXJ2YWJsZTxUPik6IFRlYXJkb3duTG9naWMge1xuICAgIGNvbnN0IHRhc2tEb25lOiBWb2lkRnVuY3Rpb24gPSB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMucGVuZGluZ1Rhc2tzLmFkZCgpKTtcbiAgICAvLyBtYXliZSB0aGlzIGlzIGEgcmFjZSBjb25kaXRpb24sIGludm9rZSBpbiBhIHRpbWVvdXRcbiAgICAvLyBob2xkIGZvciAxMG1zIHdoaWxlIEkgdHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdCBpcyBnb2luZyBvblxuICAgIGNvbnN0IHVuc2NoZWR1bGVUYXNrID0gKCkgPT4gc2V0VGltZW91dCh0YXNrRG9uZSwgMTApO1xuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgdGFwKHsgbmV4dDogdW5zY2hlZHVsZVRhc2ssIGNvbXBsZXRlOiB1bnNjaGVkdWxlVGFzaywgZXJyb3I6IHVuc2NoZWR1bGVUYXNrIH0pXG4gICAgKS5zdWJzY3JpYmUoc3Vic2NyaWJlcikuYWRkKHVuc2NoZWR1bGVUYXNrKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMge1xuICBwdWJsaWMgcmVhZG9ubHkgb3V0c2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcbiAgcHVibGljIHJlYWRvbmx5IGluc2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdab25lOiBOZ1pvbmUsIHB1YmxpYyBwZW5kaW5nVGFza3M6IEV4cGVyaW1lbnRhbFBlbmRpbmdUYXNrcykge1xuICAgIHRoaXMub3V0c2lkZUFuZ3VsYXIgPSBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoXG4gICAgICAoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKHR5cGVvZiBab25lID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFpvbmUuY3VycmVudClcbiAgICApO1xuICAgIHRoaXMuaW5zaWRlQW5ndWxhciA9IG5nWm9uZS5ydW4oXG4gICAgICAoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKFxuICAgICAgICB0eXBlb2YgWm9uZSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBab25lLmN1cnJlbnQsXG4gICAgICAgIGFzeW5jU2NoZWR1bGVyXG4gICAgICApXG4gICAgKTtcbiAgICBnbG9iYWxUaGlzLsm1QW5ndWxhckZpcmVTY2hlZHVsZXIgfHw9IHRoaXM7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U2NoZWR1bGVycygpIHtcbiAgY29uc3Qgc2NoZWR1bGVycyA9IGdsb2JhbFRoaXMuybVBbmd1bGFyRmlyZVNjaGVkdWxlciBhcyDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVyc3x1bmRlZmluZWQ7XG4gIGlmICghc2NoZWR1bGVycykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbmBFaXRoZXIgQW5ndWxhckZpcmVNb2R1bGUgaGFzIG5vdCBiZWVuIHByb3ZpZGVkIGluIHlvdXIgQXBwTW9kdWxlICh0aGlzIGNhbiBiZSBkb25lIG1hbnVhbGx5IG9yIGltcGxpY3RseSB1c2luZ1xucHJvdmlkZUZpcmViYXNlQXBwKSBvciB5b3UncmUgY2FsbGluZyBhbiBBbmd1bGFyRmlyZSBtZXRob2Qgb3V0c2lkZSBvZiBhbiBOZ01vZHVsZSAod2hpY2ggaXMgbm90IHN1cHBvcnRlZCkuYCk7XG4gIH1cbiAgcmV0dXJuIHNjaGVkdWxlcnM7XG59XG5cbmZ1bmN0aW9uIHJ1bk91dHNpZGVBbmd1bGFyPFQ+KGZuOiAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgcmV0dXJuIGdldFNjaGVkdWxlcnMoKS5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZm4oKSk7XG59XG5cbmZ1bmN0aW9uIHJ1bjxUPihmbjogKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogVCB7XG4gIHJldHVybiBnZXRTY2hlZHVsZXJzKCkubmdab25lLnJ1bigoKSA9PiBmbigpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVPdXRzaWRlQW5ndWxhcjxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMkLnBpcGUob2JzZXJ2ZU9uKGdldFNjaGVkdWxlcnMoKS5vdXRzaWRlQW5ndWxhcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZUluc2lkZUFuZ3VsYXI8VD4ob2JzJDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gb2JzJC5waXBlKG9ic2VydmVPbihnZXRTY2hlZHVsZXJzKCkuaW5zaWRlQW5ndWxhcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2VlcFVuc3RhYmxlVW50aWxGaXJzdDxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiDJtWtlZXBVbnN0YWJsZVVudGlsRmlyc3RGYWN0b3J5KGdldFNjaGVkdWxlcnMoKSkob2JzJCk7XG59XG5cbi8qKlxuICogT3BlcmF0b3IgdG8gYmxvY2sgdGhlIHpvbmUgdW50aWwgdGhlIGZpcnN0IHZhbHVlIGhhcyBiZWVuIGVtaXR0ZWQgb3IgdGhlIG9ic2VydmFibGVcbiAqIGhhcyBjb21wbGV0ZWQvZXJyb3JlZC4gVGhpcyBpcyB1c2VkIHRvIG1ha2Ugc3VyZSB0aGF0IHVuaXZlcnNhbCB3YWl0cyB1bnRpbCB0aGUgZmlyc3RcbiAqIHZhbHVlIGZyb20gZmlyZWJhc2UgYnV0IGRvZXNuJ3QgYmxvY2sgdGhlIHpvbmUgZm9yZXZlciBzaW5jZSB0aGUgZmlyZWJhc2Ugc3Vic2NyaXB0aW9uXG4gKiBpcyBzdGlsbCBhbGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1a2VlcFVuc3RhYmxlVW50aWxGaXJzdEZhY3RvcnkoXG4gIHNjaGVkdWxlcnM6IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGtlZXBVbnN0YWJsZVVudGlsRmlyc3Q8VD4oXG4gICAgb2JzJDogT2JzZXJ2YWJsZTxUPlxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBvYnMkID0gb2JzJC5saWZ0KFxuICAgICAgbmV3IEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yKHNjaGVkdWxlcnMubmdab25lLCBzY2hlZHVsZXJzLnBlbmRpbmdUYXNrcylcbiAgICApO1xuXG4gICAgcmV0dXJuIG9icyQucGlwZShcbiAgICAgIC8vIFJ1biB0aGUgc3Vic2NyaWJlIGJvZHkgb3V0c2lkZSBvZiBBbmd1bGFyIChlLmcuIGNhbGxpbmcgRmlyZWJhc2UgU0RLIHRvIGFkZCBhIGxpc3RlbmVyIHRvIGEgY2hhbmdlIGV2ZW50KVxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICAvLyBSdW4gb3BlcmF0b3JzIGluc2lkZSB0aGUgYW5ndWxhciB6b25lIChlLmcuIHNpZGUgZWZmZWN0cyB2aWEgdGFwKCkpXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKVxuICAgICAgLy8gSU5WRVNUSUdBVEUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhcmZpcmUvcHVsbC8yMzE1XG4gICAgICAvLyBzaGFyZSgpXG4gICAgKTtcbiAgfTtcbn1cblxuY29uc3Qgem9uZVdyYXBGbiA9IChcbiAgaXQ6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LFxuICB0YXNrRG9uZTogVm9pZEZ1bmN0aW9uIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICh0YXNrRG9uZSkge1xuICAgICAgc2V0VGltZW91dCh0YXNrRG9uZSwgMTApO1xuICAgIH1cbiAgICByZXR1cm4gcnVuKCgpID0+IGl0LmFwcGx5KHRoaXMsIGFyZ3MpKTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCDJtXpvbmVXcmFwID0gPFQ9IHVua25vd24+KGl0OiBULCBibG9ja1VudGlsRmlyc3Q6IGJvb2xlYW4pOiBUID0+IHtcbiAgLy8gZnVuY3Rpb24oKSBpcyBuZWVkZWQgZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IHRhc2tEb25lOiBWb2lkRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgX2FyZ3VtZW50cyA9IGFyZ3VtZW50cztcbiAgICAvLyBpZiB0aGlzIGlzIGEgY2FsbGJhY2sgZnVuY3Rpb24sIGUuZywgb25TbmFwc2hvdCwgd2Ugc2hvdWxkIGNyZWF0ZSBhIHBlbmRpbmcgdGFzayBhbmQgY29tcGxldGUgaXRcbiAgICAvLyBvbmx5IG9uY2Ugb25lIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgaXMgdHJpcHBlZC5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHR5cGVvZiBfYXJndW1lbnRzW2ldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGlmIChibG9ja1VudGlsRmlyc3QpIHtcbiAgICAgICAgICB0YXNrRG9uZSB8fD0gcnVuKCgpID0+IGdldFNjaGVkdWxlcnMoKS5wZW5kaW5nVGFza3MuYWRkKCkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE8gY3JlYXRlIGEgbWljcm90YXNrIHRvIHRyYWNrIGNhbGxiYWNrIGZ1bmN0aW9uc1xuICAgICAgICBfYXJndW1lbnRzW2ldID0gem9uZVdyYXBGbihfYXJndW1lbnRzW2ldLCB0YXNrRG9uZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJldCA9IHJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IChpdCBhcyBhbnkpLmFwcGx5KHRoaXMsIF9hcmd1bWVudHMpKTtcbiAgICBpZiAoIWJsb2NrVW50aWxGaXJzdCkge1xuICAgICAgaWYgKHJldCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVycyA9IGdldFNjaGVkdWxlcnMoKTtcbiAgICAgICAgcmV0dXJuIHJldC5waXBlKFxuICAgICAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJ1bigoKSA9PiByZXQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmV0dXJuIHJldC5waXBlKGtlZXBVbnN0YWJsZVVudGlsRmlyc3QpIGFzIGFueTtcbiAgICB9IGVsc2UgaWYgKHJldCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWlzdXNlZC1wcm9taXNlc1xuICAgICAgcmV0dXJuIHJ1bihcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICByZXQudGhlbihcbiAgICAgICAgICAgICAgKGl0KSA9PiBydW4oKCkgPT4gcmVzb2x2ZShpdCkpLFxuICAgICAgICAgICAgICAocmVhc29uKSA9PiBydW4oKCkgPT4gcmVqZWN0KHJlYXNvbikpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldCA9PT0gJ2Z1bmN0aW9uJyAmJiB0YXNrRG9uZSkge1xuICAgICAgLy8gSGFuZGxlIHVuc3Vic2NyaWJlXG4gICAgICAvLyBmdW5jdGlvbigpIGlzIG5lZWRlZCBmb3IgdGhlIGFyZ3VtZW50cyBvYmplY3RcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNldFRpbWVvdXQodGFza0RvbmUsIDEwKTtcbiAgICAgICAgcmV0dXJuIHJldC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVE9ETyBob3cgZG8gd2UgaGFuZGxlIHN0b3JhZ2UgdXBsb2FkcyBpbiBab25lPyBhbmQgb3RoZXIgc3R1ZmYgd2l0aCBjYW5jZWwoKSBldGM/XG4gICAgICByZXR1cm4gcnVuKCgpID0+IHJldCk7XG4gICAgfVxuICB9IGFzIGFueTtcbn07XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"angular-fire-vertexai-preview.mjs","sources":["../../../src/vertexai-preview/vertexai.ts","../../../src/vertexai-preview/vertexai.module.ts","../../../src/vertexai-preview/firebase.ts","../../../src/vertexai-preview/angular-fire-vertexai-preview.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { VertexAI as FirebaseVertexAI } from 'firebase/vertexai-preview';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface VertexAI extends FirebaseVertexAI {}\n\nexport class VertexAI {\n constructor(vertexai: FirebaseVertexAI) {\n return vertexai;\n }\n}\n\nexport const VERTEX_AI_PROVIDER_NAME = 'vertexai';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface VertexAIInstances extends Array<FirebaseVertexAI> {}\n\nexport class VertexAIInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseVertexAI>(VERTEX_AI_PROVIDER_NAME);\n }\n}\n\nexport const vertexAIInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseVertexAI>(VERTEX_AI_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { VertexAI as FirebaseVertexAI } from 'firebase/vertexai-preview';\nimport { VERTEX_AI_PROVIDER_NAME, VertexAI, VertexAIInstances } from './vertexai';\n\nexport const PROVIDED_VERTEX_AI_INSTANCES = new InjectionToken<VertexAI[]>('angularfire2.vertexai-instances');\n\nexport function defaultVertexAIInstanceFactory(provided: FirebaseVertexAI[]|undefined, defaultApp: FirebaseApp) {\n const defaultVertexAI = ɵgetDefaultInstanceOf<FirebaseVertexAI>(VERTEX_AI_PROVIDER_NAME, provided, defaultApp);\n return defaultVertexAI && new VertexAI(defaultVertexAI);\n}\n\nexport function vertexAIInstanceFactory(fn: (injector: Injector) => FirebaseVertexAI) {\n return (zone: NgZone, injector: Injector) => {\n const vertexAI = zone.runOutsideAngular(() => fn(injector));\n return new VertexAI(vertexAI);\n };\n}\n\nconst VERTEX_AI_INSTANCES_PROVIDER = {\n provide: VertexAIInstances,\n deps: [\n [new Optional(), PROVIDED_VERTEX_AI_INSTANCES ],\n ]\n};\n\nconst DEFAULT_VERTEX_AI_INSTANCE_PROVIDER = {\n provide: VertexAI,\n useFactory: defaultVertexAIInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_VERTEX_AI_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_VERTEX_AI_INSTANCE_PROVIDER,\n VERTEX_AI_INSTANCES_PROVIDER,\n ]\n})\nexport class VertexAIModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'vertexai');\n }\n}\n\nexport function provideVertexAI(fn: (injector: Injector) => FirebaseVertexAI, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'vertexai');\n\n return makeEnvironmentProviders([\n DEFAULT_VERTEX_AI_INSTANCE_PROVIDER,\n VERTEX_AI_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_VERTEX_AI_INSTANCES,\n useFactory: vertexAIInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/vertexai-preview';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n getGenerativeModel as _getGenerativeModel,\n getVertexAI as _getVertexAI\n} from 'firebase/vertexai-preview';\n\nexport const getGenerativeModel = ɵzoneWrap(_getGenerativeModel, true);\nexport const getVertexAI = ɵzoneWrap(_getVertexAI, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_getGenerativeModel","_getVertexAI"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare const isMessagingSupportedFactory: {
2
- async: () => any;
3
- sync: () => any;
4
- };
@@ -1 +0,0 @@
1
- export declare const isSupported: () => any;
@@ -1,4 +0,0 @@
1
- export declare const isRemoteConfigSupportedFactory: {
2
- async: () => any;
3
- sync: () => any;
4
- };
@@ -1 +0,0 @@
1
- export declare const isSupported: () => any;
@@ -1,81 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.addDependencies = exports.safeReadJSON = exports.overwriteIfExists = exports.stringifyFormatted = exports.shortSiteName = void 0;
27
- const schematics_1 = require("@angular-devkit/schematics");
28
- const semver = __importStar(require("semver"));
29
- const shortSiteName = (site) => { var _a; return (_a = site === null || site === void 0 ? void 0 : site.name) === null || _a === void 0 ? void 0 : _a.split('/').pop(); };
30
- exports.shortSiteName = shortSiteName;
31
- const stringifyFormatted = (obj) => JSON.stringify(obj, null, 2);
32
- exports.stringifyFormatted = stringifyFormatted;
33
- const overwriteIfExists = (tree, path, content) => {
34
- if (tree.exists(path)) {
35
- tree.overwrite(path, content);
36
- }
37
- else {
38
- tree.create(path, content);
39
- }
40
- };
41
- exports.overwriteIfExists = overwriteIfExists;
42
- function safeReadJSON(path, tree) {
43
- try {
44
- return JSON.parse(tree.read(path).toString());
45
- }
46
- catch (e) {
47
- throw new schematics_1.SchematicsException(`Error when parsing ${path}: ${e.message}`);
48
- }
49
- }
50
- exports.safeReadJSON = safeReadJSON;
51
- const addDependencies = (host, deps, context) => {
52
- var _a, _b;
53
- const packageJson = host.exists('package.json') && safeReadJSON('package.json', host);
54
- if (packageJson === undefined) {
55
- throw new schematics_1.SchematicsException('Could not locate package.json');
56
- }
57
- (_a = packageJson.devDependencies) !== null && _a !== void 0 ? _a : (packageJson.devDependencies = {});
58
- (_b = packageJson.dependencies) !== null && _b !== void 0 ? _b : (packageJson.dependencies = {});
59
- Object.keys(deps).forEach(depName => {
60
- const dep = deps[depName];
61
- const existingDeps = dep.dev ? packageJson.devDependencies : packageJson.dependencies;
62
- const existingVersion = existingDeps[depName];
63
- if (existingVersion) {
64
- try {
65
- if (!semver.intersects(existingVersion, dep.version)) {
66
- context.logger.warn(`⚠️ The ${depName} devDependency specified in your package.json (${existingVersion}) does not fulfill AngularFire's dependency (${dep.version})`);
67
- }
68
- }
69
- catch (e) {
70
- if (existingVersion !== dep.version) {
71
- context.logger.warn(`⚠️ The ${depName} devDependency specified in your package.json (${existingVersion}) does not fulfill AngularFire's dependency (${dep.version})`);
72
- }
73
- }
74
- }
75
- else {
76
- existingDeps[depName] = dep.version;
77
- }
78
- });
79
- (0, exports.overwriteIfExists)(host, 'package.json', (0, exports.stringifyFormatted)(packageJson));
80
- };
81
- exports.addDependencies = addDependencies;
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dockerfile = exports.functionGen2 = exports.defaultFunction = exports.defaultPackage = exports.DEFAULT_FUNCTION_NAME = exports.DEFAULT_NODE_VERSION = void 0;
4
- exports.DEFAULT_NODE_VERSION = 14;
5
- exports.DEFAULT_FUNCTION_NAME = 'ssr';
6
- const DEFAULT_FUNCTION_REGION = 'us-central1';
7
- const DEFAULT_RUNTIME_OPTIONS = {
8
- timeoutSeconds: 60,
9
- memory: '1GB'
10
- };
11
- const defaultPackage = (dependencies, devDependencies, options, main) => ({
12
- name: 'functions',
13
- description: 'Angular Universal Application',
14
- main: main !== null && main !== void 0 ? main : 'index.js',
15
- scripts: {
16
- start: main ? `node ${main}` : 'firebase functions:shell',
17
- },
18
- engines: {
19
- node: (options.functionsNodeVersion || exports.DEFAULT_NODE_VERSION).toString()
20
- },
21
- dependencies,
22
- devDependencies,
23
- private: true
24
- });
25
- exports.defaultPackage = defaultPackage;
26
- const defaultFunction = (path, options, functionName) => `const functions = require('firebase-functions');
27
-
28
- // Increase readability in Cloud Logging
29
- require("firebase-functions/lib/logger/compat");
30
-
31
- const expressApp = require('./${path}/main').app();
32
-
33
- exports.${functionName || exports.DEFAULT_FUNCTION_NAME} = functions
34
- .region('${options.region || DEFAULT_FUNCTION_REGION}')
35
- .runWith(${JSON.stringify(options.functionsRuntimeOptions || DEFAULT_RUNTIME_OPTIONS)})
36
- .https
37
- .onRequest(expressApp);
38
- `;
39
- exports.defaultFunction = defaultFunction;
40
- const functionGen2 = (path, options, functionName) => `const { onRequest } = require('firebase-functions/v2/https');
41
-
42
- // Increase readability in Cloud Logging
43
- require("firebase-functions/lib/logger/compat");
44
-
45
- const expressApp = require('./${path}/main').app();
46
-
47
- exports.${functionName || exports.DEFAULT_FUNCTION_NAME} = onRequest(${JSON.stringify(Object.assign({ region: options.region || DEFAULT_FUNCTION_REGION }, (options.functionsRuntimeOptions || DEFAULT_RUNTIME_OPTIONS)))}, expressApp);
48
- `;
49
- exports.functionGen2 = functionGen2;
50
- const dockerfile = (options) => `FROM node:${options.functionsNodeVersion || exports.DEFAULT_NODE_VERSION}-slim
51
- WORKDIR /usr/src/app
52
- COPY package*.json ./
53
- RUN npm install --only=production
54
- COPY . ./
55
- CMD [ "npm", "start" ]
56
- `;
57
- exports.dockerfile = dockerfile;
@@ -1,78 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getFirebaseTools = void 0;
30
- const child_process_1 = require("child_process");
31
- const ora_1 = __importDefault(require("ora"));
32
- const semver = __importStar(require("semver"));
33
- const getFirebaseTools = () => globalThis.firebaseTools ?
34
- Promise.resolve(globalThis.firebaseTools) :
35
- new Promise((resolve, reject) => {
36
- var _a;
37
- (_a = process.env).FIREBASE_CLI_EXPERIMENTS || (_a.FIREBASE_CLI_EXPERIMENTS = 'webframeworks');
38
- try {
39
- resolve(require('firebase-tools'));
40
- }
41
- catch (e) {
42
- try {
43
- const root = (0, child_process_1.execSync)('npm root --location=global').toString().trim();
44
- resolve(require(`${root}/firebase-tools`));
45
- }
46
- catch (e) {
47
- const spinner = (0, ora_1.default)({
48
- text: `Installing firebase-tools...`,
49
- discardStdin: process.platform !== 'win32',
50
- }).start();
51
- (0, child_process_1.spawn)('npm', ['i', '--location=global', 'firebase-tools'], {
52
- stdio: 'pipe',
53
- shell: true,
54
- }).on('close', (code) => {
55
- if (code === 0) {
56
- spinner.succeed('firebase-tools installed globally.');
57
- spinner.stop();
58
- const root = (0, child_process_1.execSync)('npm root -g').toString().trim();
59
- resolve(require(`${root}/firebase-tools`));
60
- }
61
- else {
62
- spinner.fail('Package install failed.');
63
- reject();
64
- }
65
- });
66
- }
67
- }
68
- }).then(firebaseTools => {
69
- globalThis.firebaseTools = firebaseTools;
70
- const version = firebaseTools.cli.version();
71
- console.log(`Using firebase-tools version ${version}`);
72
- if (semver.compare(version, '13.0.0') === -1) {
73
- console.error('firebase-tools version 13.0.0+ is required, please upgrade and run again');
74
- return Promise.reject();
75
- }
76
- return firebaseTools;
77
- });
78
- exports.getFirebaseTools = getFirebaseTools;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.featureOptions = void 0;
4
- exports.featureOptions = [
5
- { name: 'Authentication', value: 0 },
6
- { name: 'Google Analytics', value: 1 },
7
- { name: 'App Check', value: 2 },
8
- { name: 'Firestore', value: 7 },
9
- { name: 'Realtime Database', value: 3 },
10
- { name: 'Cloud Functions (callable)', value: 4 },
11
- { name: 'Cloud Messaging', value: 5 },
12
- { name: 'Performance Monitoring', value: 6 },
13
- { name: 'Cloud Storage', value: 8 },
14
- { name: 'Remote Config', value: 9 },
15
- { name: 'VertexAI (preview)', value: 10 },
16
- ];