@angular/fire 7.6.1 → 16.0.0-canary.596e208
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.
- package/analytics/is-analytics-supported-factory.d.ts +4 -0
- package/app-check/app-check.d.ts +0 -6
- package/app-check/app-check.module.d.ts +0 -1
- package/app-check/public_api.d.ts +2 -1
- package/auth-guard/auth-guard.d.ts +4 -4
- package/compat/auth/auth.d.ts +1 -1
- package/compat/auth-guard/auth-guard.d.ts +6 -4
- package/compat/database/interfaces.d.ts +12 -12
- package/compat/firestore/interfaces.d.ts +17 -17
- package/compat/proxy.d.ts +8 -8
- package/compat/remote-config/interfaces.d.ts +1 -1
- package/compat/storage/interfaces.d.ts +8 -8
- package/compat/storage/pipes/storageUrl.pipe.d.ts +1 -1
- package/core.d.ts +8 -12
- package/esm2022/analytics/analytics.module.mjs +94 -0
- package/esm2022/analytics/is-analytics-supported-factory.mjs +16 -0
- package/esm2022/analytics/overrides.mjs +3 -0
- package/esm2022/analytics/screen-tracking.service.mjs +147 -0
- package/esm2022/analytics/user-tracking.service.mjs +44 -0
- package/esm2022/app/app.module.mjs +84 -0
- package/esm2022/app-check/app-check.mjs +10 -0
- package/esm2022/app-check/app-check.module.mjs +79 -0
- package/esm2022/app-check/public_api.mjs +5 -0
- package/esm2022/auth/auth.module.mjs +71 -0
- package/esm2022/auth-guard/auth-guard.mjs +51 -0
- package/{esm2015/auth-guard/auth-guard.module.js → esm2022/auth-guard/auth-guard.module.mjs} +5 -5
- package/esm2022/compat/analytics/analytics.mjs +161 -0
- package/{esm2015/compat/analytics/analytics.module.js → esm2022/compat/analytics/analytics.module.mjs} +5 -5
- package/esm2022/compat/analytics/screen-tracking.service.mjs +49 -0
- package/esm2022/compat/analytics/user-tracking.service.mjs +53 -0
- package/esm2022/compat/auth/auth.mjs +161 -0
- package/{esm2015/compat/auth/auth.module.js → esm2022/compat/auth/auth.module.mjs} +5 -5
- package/{esm2015/compat/auth/public_api.js → esm2022/compat/auth/public_api.mjs} +1 -1
- package/esm2022/compat/auth-guard/auth-guard.mjs +51 -0
- package/{esm2015/compat/auth-guard/auth-guard.module.js → esm2022/compat/auth-guard/auth-guard.module.mjs} +5 -5
- package/{esm2015/compat/cache.js → esm2022/compat/cache.mjs} +3 -3
- package/esm2022/compat/database/database.mjs +119 -0
- package/{esm2015/compat/database/database.module.js → esm2022/compat/database/database.module.mjs} +5 -5
- package/esm2022/compat/database/list/create-reference.mjs +44 -0
- package/{esm2015/compat/firebase.app.module.js → esm2022/compat/firebase.app.module.mjs} +11 -11
- package/esm2022/compat/firestore/collection/changes.mjs +108 -0
- package/esm2022/compat/firestore/collection/collection.mjs +123 -0
- package/esm2022/compat/firestore/collection-group/collection-group.mjs +86 -0
- package/esm2022/compat/firestore/document/document.mjs +87 -0
- package/esm2022/compat/firestore/firestore.mjs +257 -0
- package/{esm2015/compat/firestore/firestore.module.js → esm2022/compat/firestore/firestore.module.mjs} +5 -5
- package/esm2022/compat/firestore/interfaces.mjs +2 -0
- package/esm2022/compat/firestore/observable/fromRef.mjs +40 -0
- package/esm2022/compat/functions/functions.mjs +69 -0
- package/{esm2015/compat/functions/functions.module.js → esm2022/compat/functions/functions.module.mjs} +5 -5
- package/{esm2015/compat/functions/public_api.js → esm2022/compat/functions/public_api.mjs} +1 -1
- package/esm2022/compat/messaging/messaging.mjs +80 -0
- package/{esm2015/compat/messaging/messaging.module.js → esm2022/compat/messaging/messaging.module.mjs} +5 -5
- package/{esm2015/compat/performance/performance.js → esm2022/compat/performance/performance.mjs} +7 -6
- package/{esm2015/compat/performance/performance.module.js → esm2022/compat/performance/performance.module.mjs} +5 -5
- package/esm2022/compat/performance/performance.service.mjs +27 -0
- package/esm2022/compat/proxy.mjs +59 -0
- package/esm2022/compat/remote-config/remote-config.mjs +207 -0
- package/{esm2015/compat/remote-config/remote-config.module.js → esm2022/compat/remote-config/remote-config.module.mjs} +5 -5
- package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +58 -0
- package/esm2022/compat/storage/storage.mjs +95 -0
- package/{esm2015/compat/storage/storage.module.js → esm2022/compat/storage/storage.module.mjs} +5 -5
- package/esm2022/core.mjs +45 -0
- package/esm2022/database/database.module.mjs +74 -0
- package/esm2022/firestore/firestore.module.mjs +74 -0
- package/esm2022/firestore/lite/lite.module.mjs +73 -0
- package/esm2022/firestore/rxfire.mjs +15 -0
- package/esm2022/functions/functions.module.mjs +74 -0
- package/esm2022/messaging/is-messaging-supported-factory.mjs +16 -0
- package/esm2022/messaging/messaging.module.mjs +86 -0
- package/esm2022/messaging/overrides.mjs +3 -0
- package/{esm2015/performance/performance.module.js → esm2022/performance/performance.module.mjs} +8 -8
- package/esm2022/remote-config/is-remote-config-supported-factory.mjs +16 -0
- package/esm2022/remote-config/overrides.mjs +3 -0
- package/esm2022/remote-config/remote-config.module.mjs +86 -0
- package/esm2022/storage/storage.module.mjs +74 -0
- package/esm2022/zones.mjs +196 -0
- package/{fesm2015/angular-fire-analytics.js → fesm2022/angular-fire-analytics.mjs} +61 -38
- package/fesm2022/angular-fire-analytics.mjs.map +1 -0
- package/{fesm2015/angular-fire-app-check.js → fesm2022/angular-fire-app-check.mjs} +15 -22
- package/fesm2022/angular-fire-app-check.mjs.map +1 -0
- package/{fesm2015/angular-fire-app.js → fesm2022/angular-fire-app.mjs} +8 -8
- package/fesm2022/angular-fire-app.mjs.map +1 -0
- package/{fesm2015/angular-fire-auth-guard.js → fesm2022/angular-fire-auth-guard.mjs} +25 -23
- package/fesm2022/angular-fire-auth-guard.mjs.map +1 -0
- package/{fesm2015/angular-fire-auth.js → fesm2022/angular-fire-auth.mjs} +10 -11
- package/fesm2022/angular-fire-auth.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-analytics.js → fesm2022/angular-fire-compat-analytics.mjs} +28 -28
- package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-auth-guard.js → fesm2022/angular-fire-compat-auth-guard.mjs} +25 -23
- package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-auth.js → fesm2022/angular-fire-compat-auth.mjs} +32 -10
- package/fesm2022/angular-fire-compat-auth.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-database.js → fesm2022/angular-fire-compat-database.mjs} +17 -12
- package/fesm2022/angular-fire-compat-database.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-firestore.js → fesm2022/angular-fire-compat-firestore.mjs} +37 -16
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-functions.js → fesm2022/angular-fire-compat-functions.mjs} +10 -9
- package/fesm2022/angular-fire-compat-functions.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-messaging.js → fesm2022/angular-fire-compat-messaging.mjs} +20 -15
- package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-performance.js → fesm2022/angular-fire-compat-performance.mjs} +16 -15
- package/fesm2022/angular-fire-compat-performance.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-remote-config.js → fesm2022/angular-fire-compat-remote-config.mjs} +33 -19
- package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat-storage.js → fesm2022/angular-fire-compat-storage.mjs} +23 -18
- package/fesm2022/angular-fire-compat-storage.mjs.map +1 -0
- package/{fesm2015/angular-fire-compat.js → fesm2022/angular-fire-compat.mjs} +15 -17
- package/fesm2022/angular-fire-compat.mjs.map +1 -0
- package/{fesm2015/angular-fire-database.js → fesm2022/angular-fire-database.mjs} +10 -11
- package/fesm2022/angular-fire-database.mjs.map +1 -0
- package/{fesm2015/angular-fire-firestore-lite.js → fesm2022/angular-fire-firestore-lite.mjs} +10 -11
- package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -0
- package/{fesm2015/angular-fire-firestore.js → fesm2022/angular-fire-firestore.mjs} +14 -13
- package/fesm2022/angular-fire-firestore.mjs.map +1 -0
- package/{fesm2015/angular-fire-functions.js → fesm2022/angular-fire-functions.mjs} +10 -11
- package/fesm2022/angular-fire-functions.mjs.map +1 -0
- package/{fesm2015/angular-fire-messaging.js → fesm2022/angular-fire-messaging.mjs} +33 -19
- package/fesm2022/angular-fire-messaging.mjs.map +1 -0
- package/{fesm2015/angular-fire-performance.js → fesm2022/angular-fire-performance.mjs} +8 -8
- package/fesm2022/angular-fire-performance.mjs.map +1 -0
- package/{fesm2015/angular-fire-remote-config.js → fesm2022/angular-fire-remote-config.mjs} +34 -20
- package/fesm2022/angular-fire-remote-config.mjs.map +1 -0
- package/{fesm2015/angular-fire-storage.js → fesm2022/angular-fire-storage.mjs} +10 -11
- package/fesm2022/angular-fire-storage.mjs.map +1 -0
- package/{fesm2015/angular-fire.js → fesm2022/angular-fire.mjs} +31 -52
- package/fesm2022/angular-fire.mjs.map +1 -0
- package/firestore/rxfire.d.ts +3 -1
- package/messaging/is-messaging-supported-factory.d.ts +4 -0
- package/package.json +158 -7
- package/publish.sh +1 -0
- package/remote-config/is-remote-config-supported-factory.d.ts +4 -0
- package/schematics/add/index.js +1 -1
- package/schematics/common.js +8 -4
- package/schematics/deploy/actions.js +59 -59
- package/schematics/deploy/builder.js +5 -5
- package/schematics/firebaseTools.js +9 -5
- package/schematics/setup/index.js +24 -23
- package/schematics/setup/prompts.js +20 -15
- package/schematics/update/v7/index.js +5 -5
- package/schematics/utils.js +30 -30
- package/README.md +0 -216
- package/analytics/package.json +0 -11
- package/app/package.json +0 -11
- package/app-check/package.json +0 -11
- package/auth/package.json +0 -11
- package/auth-guard/package.json +0 -11
- package/bundles/angular-fire-analytics.umd.js +0 -673
- package/bundles/angular-fire-analytics.umd.js.map +0 -1
- package/bundles/angular-fire-app-check.umd.js +0 -465
- package/bundles/angular-fire-app-check.umd.js.map +0 -1
- package/bundles/angular-fire-app.umd.js +0 -477
- package/bundles/angular-fire-app.umd.js.map +0 -1
- package/bundles/angular-fire-auth-guard.umd.js +0 -109
- package/bundles/angular-fire-auth-guard.umd.js.map +0 -1
- package/bundles/angular-fire-auth.umd.js +0 -557
- package/bundles/angular-fire-auth.umd.js.map +0 -1
- package/bundles/angular-fire-compat-analytics.umd.js +0 -672
- package/bundles/angular-fire-compat-analytics.umd.js.map +0 -1
- package/bundles/angular-fire-compat-auth-guard.umd.js +0 -112
- package/bundles/angular-fire-compat-auth-guard.umd.js.map +0 -1
- package/bundles/angular-fire-compat-auth.umd.js +0 -559
- package/bundles/angular-fire-compat-auth.umd.js.map +0 -1
- package/bundles/angular-fire-compat-database.umd.js +0 -799
- package/bundles/angular-fire-compat-database.umd.js.map +0 -1
- package/bundles/angular-fire-compat-firestore.umd.js +0 -1073
- package/bundles/angular-fire-compat-firestore.umd.js.map +0 -1
- package/bundles/angular-fire-compat-functions.umd.js +0 -443
- package/bundles/angular-fire-compat-functions.umd.js.map +0 -1
- package/bundles/angular-fire-compat-messaging.umd.js +0 -465
- package/bundles/angular-fire-compat-messaging.umd.js.map +0 -1
- package/bundles/angular-fire-compat-performance.umd.js +0 -212
- package/bundles/angular-fire-compat-performance.umd.js.map +0 -1
- package/bundles/angular-fire-compat-remote-config.umd.js +0 -605
- package/bundles/angular-fire-compat-remote-config.umd.js.map +0 -1
- package/bundles/angular-fire-compat-storage.umd.js +0 -598
- package/bundles/angular-fire-compat-storage.umd.js.map +0 -1
- package/bundles/angular-fire-compat.umd.js +0 -535
- package/bundles/angular-fire-compat.umd.js.map +0 -1
- package/bundles/angular-fire-database.umd.js +0 -557
- package/bundles/angular-fire-database.umd.js.map +0 -1
- package/bundles/angular-fire-firestore-lite.umd.js +0 -531
- package/bundles/angular-fire-firestore-lite.umd.js.map +0 -1
- package/bundles/angular-fire-firestore.umd.js +0 -565
- package/bundles/angular-fire-firestore.umd.js.map +0 -1
- package/bundles/angular-fire-functions.umd.js +0 -461
- package/bundles/angular-fire-functions.umd.js.map +0 -1
- package/bundles/angular-fire-messaging.umd.js +0 -473
- package/bundles/angular-fire-messaging.umd.js.map +0 -1
- package/bundles/angular-fire-performance.umd.js +0 -473
- package/bundles/angular-fire-performance.umd.js.map +0 -1
- package/bundles/angular-fire-remote-config.umd.js +0 -499
- package/bundles/angular-fire-remote-config.umd.js.map +0 -1
- package/bundles/angular-fire-storage.umd.js +0 -485
- package/bundles/angular-fire-storage.umd.js.map +0 -1
- package/bundles/angular-fire.umd.js +0 -308
- package/bundles/angular-fire.umd.js.map +0 -1
- package/compat/analytics/package.json +0 -11
- package/compat/auth/package.json +0 -11
- package/compat/auth-guard/package.json +0 -11
- package/compat/database/package.json +0 -11
- package/compat/firestore/package.json +0 -11
- package/compat/functions/package.json +0 -11
- package/compat/messaging/package.json +0 -11
- package/compat/package.json +0 -11
- package/compat/performance/package.json +0 -11
- package/compat/remote-config/package.json +0 -11
- package/compat/storage/package.json +0 -11
- package/database/package.json +0 -11
- package/docs/analytics.md +0 -67
- package/docs/app-check.md +0 -53
- package/docs/auth.md +0 -165
- package/docs/compat/analytics/getting-started.md +0 -137
- package/docs/compat/auth/getting-started.md +0 -162
- package/docs/compat/auth/router-guards.md +0 -104
- package/docs/compat/emulators/emulators.md +0 -134
- package/docs/compat/firestore/collections.md +0 -326
- package/docs/compat/firestore/documents.md +0 -115
- package/docs/compat/firestore/offline-data.md +0 -39
- package/docs/compat/firestore/querying-collections.md +0 -204
- package/docs/compat/functions/functions.md +0 -166
- package/docs/compat/messaging/messaging.md +0 -232
- package/docs/compat/performance/getting-started.md +0 -132
- package/docs/compat/remote-config/getting-started.md +0 -134
- package/docs/compat/rtdb/lists.md +0 -257
- package/docs/compat/rtdb/objects.md +0 -182
- package/docs/compat/rtdb/querying-lists.md +0 -155
- package/docs/compat/storage/storage.md +0 -257
- package/docs/compat.md +0 -70
- package/docs/database.md +0 -175
- package/docs/deploy/getting-started.md +0 -204
- package/docs/firebase.json +0 -16
- package/docs/firestore.md +0 -148
- package/docs/functions.md +0 -52
- package/docs/images/analytics-illo_1x.png +0 -0
- package/docs/images/auth-illo_1x.png +0 -0
- package/docs/images/cloud-messaging-illo_1x.png +0 -0
- package/docs/images/database-illo_1x.png +0 -0
- package/docs/images/firestore-illo_1x.png +0 -0
- package/docs/images/functions-illo_1x.png +0 -0
- package/docs/images/hosting-illo_1x.png +0 -0
- package/docs/images/performance-illo_1x.png +0 -0
- package/docs/images/reCAPTCHA-logo@1x.png +0 -0
- package/docs/images/remote-config-illo_1x.png +0 -0
- package/docs/images/storage-illo_1x.png +0 -0
- package/docs/install-and-setup.md +0 -114
- package/docs/install-angular-cli-windows10.md +0 -82
- package/docs/messaging.md +0 -25
- package/docs/performance.md +0 -57
- package/docs/remote-config.md +0 -53
- package/docs/storage.md +0 -90
- package/docs/universal/cloud-functions.md +0 -75
- package/docs/universal/getting-started.md +0 -153
- package/docs/universal/prerendering.md +0 -72
- package/docs/version-4-upgrade.md +0 -119
- package/docs/version-5-upgrade.md +0 -82
- package/docs/version-6-upgrade.md +0 -16
- package/docs/version-7-upgrade.md +0 -298
- package/esm2015/analytics/analytics.module.js +0 -93
- package/esm2015/analytics/overrides.js +0 -3
- package/esm2015/analytics/screen-tracking.service.js +0 -139
- package/esm2015/analytics/user-tracking.service.js +0 -43
- package/esm2015/app/app.module.js +0 -84
- package/esm2015/app-check/app-check.js +0 -16
- package/esm2015/app-check/app-check.module.js +0 -81
- package/esm2015/app-check/public_api.js +0 -4
- package/esm2015/auth/auth.module.js +0 -71
- package/esm2015/auth-guard/auth-guard.js +0 -49
- package/esm2015/compat/analytics/analytics.js +0 -163
- package/esm2015/compat/analytics/screen-tracking.service.js +0 -49
- package/esm2015/compat/analytics/user-tracking.service.js +0 -52
- package/esm2015/compat/auth/auth.js +0 -139
- package/esm2015/compat/auth-guard/auth-guard.js +0 -49
- package/esm2015/compat/database/database.js +0 -117
- package/esm2015/compat/database/list/create-reference.js +0 -41
- package/esm2015/compat/firestore/collection/changes.js +0 -107
- package/esm2015/compat/firestore/collection/collection.js +0 -117
- package/esm2015/compat/firestore/collection-group/collection-group.js +0 -81
- package/esm2015/compat/firestore/document/document.js +0 -82
- package/esm2015/compat/firestore/firestore.js +0 -254
- package/esm2015/compat/firestore/interfaces.js +0 -2
- package/esm2015/compat/firestore/observable/fromRef.js +0 -39
- package/esm2015/compat/functions/functions.js +0 -68
- package/esm2015/compat/messaging/messaging.js +0 -75
- package/esm2015/compat/performance/performance.service.js +0 -27
- package/esm2015/compat/proxy.js +0 -61
- package/esm2015/compat/remote-config/remote-config.js +0 -193
- package/esm2015/compat/storage/pipes/storageUrl.pipe.js +0 -54
- package/esm2015/compat/storage/storage.js +0 -94
- package/esm2015/core.js +0 -79
- package/esm2015/database/database.module.js +0 -74
- package/esm2015/firestore/firestore.module.js +0 -74
- package/esm2015/firestore/lite/lite.module.js +0 -74
- package/esm2015/firestore/rxfire.js +0 -13
- package/esm2015/functions/functions.module.js +0 -74
- package/esm2015/messaging/messaging.module.js +0 -85
- package/esm2015/messaging/overrides.js +0 -3
- package/esm2015/remote-config/overrides.js +0 -3
- package/esm2015/remote-config/remote-config.module.js +0 -85
- package/esm2015/storage/storage.module.js +0 -74
- package/esm2015/zones.js +0 -183
- package/fesm2015/angular-fire-analytics.js.map +0 -1
- package/fesm2015/angular-fire-app-check.js.map +0 -1
- package/fesm2015/angular-fire-app.js.map +0 -1
- package/fesm2015/angular-fire-auth-guard.js.map +0 -1
- package/fesm2015/angular-fire-auth.js.map +0 -1
- package/fesm2015/angular-fire-compat-analytics.js.map +0 -1
- package/fesm2015/angular-fire-compat-auth-guard.js.map +0 -1
- package/fesm2015/angular-fire-compat-auth.js.map +0 -1
- package/fesm2015/angular-fire-compat-database.js.map +0 -1
- package/fesm2015/angular-fire-compat-firestore.js.map +0 -1
- package/fesm2015/angular-fire-compat-functions.js.map +0 -1
- package/fesm2015/angular-fire-compat-messaging.js.map +0 -1
- package/fesm2015/angular-fire-compat-performance.js.map +0 -1
- package/fesm2015/angular-fire-compat-remote-config.js.map +0 -1
- package/fesm2015/angular-fire-compat-storage.js.map +0 -1
- package/fesm2015/angular-fire-compat.js.map +0 -1
- package/fesm2015/angular-fire-database.js.map +0 -1
- package/fesm2015/angular-fire-firestore-lite.js.map +0 -1
- package/fesm2015/angular-fire-firestore.js.map +0 -1
- package/fesm2015/angular-fire-functions.js.map +0 -1
- package/fesm2015/angular-fire-messaging.js.map +0 -1
- package/fesm2015/angular-fire-performance.js.map +0 -1
- package/fesm2015/angular-fire-remote-config.js.map +0 -1
- package/fesm2015/angular-fire-storage.js.map +0 -1
- package/fesm2015/angular-fire.js.map +0 -1
- package/firestore/lite/package.json +0 -11
- package/firestore/package.json +0 -11
- package/firestore-protos.js +0 -4
- package/functions/package.json +0 -11
- package/messaging/package.json +0 -11
- package/performance/package.json +0 -11
- package/remote-config/package.json +0 -11
- package/schematics/add/schema.json +0 -16
- package/schematics/builders.json +0 -10
- package/schematics/collection.json +0 -15
- package/schematics/deploy/schema.json +0 -119
- package/schematics/migration.json +0 -15
- package/schematics/setup/schema.json +0 -16
- package/storage/package.json +0 -11
- /package/analytics/{angular-fire-analytics.d.ts → index.d.ts} +0 -0
- /package/app/{angular-fire-app.d.ts → index.d.ts} +0 -0
- /package/app-check/{angular-fire-app-check.d.ts → index.d.ts} +0 -0
- /package/auth/{angular-fire-auth.d.ts → index.d.ts} +0 -0
- /package/auth-guard/{angular-fire-auth-guard.d.ts → index.d.ts} +0 -0
- /package/compat/analytics/{angular-fire-compat-analytics.d.ts → index.d.ts} +0 -0
- /package/compat/auth/{angular-fire-compat-auth.d.ts → index.d.ts} +0 -0
- /package/compat/auth-guard/{angular-fire-compat-auth-guard.d.ts → index.d.ts} +0 -0
- /package/compat/database/{angular-fire-compat-database.d.ts → index.d.ts} +0 -0
- /package/compat/firestore/{angular-fire-compat-firestore.d.ts → index.d.ts} +0 -0
- /package/compat/functions/{angular-fire-compat-functions.d.ts → index.d.ts} +0 -0
- /package/compat/{angular-fire-compat.d.ts → index.d.ts} +0 -0
- /package/compat/messaging/{angular-fire-compat-messaging.d.ts → index.d.ts} +0 -0
- /package/compat/performance/{angular-fire-compat-performance.d.ts → index.d.ts} +0 -0
- /package/compat/remote-config/{angular-fire-compat-remote-config.d.ts → index.d.ts} +0 -0
- /package/compat/storage/{angular-fire-compat-storage.d.ts → index.d.ts} +0 -0
- /package/database/{angular-fire-database.d.ts → index.d.ts} +0 -0
- /package/{esm2015/analytics/analytics.js → esm2022/analytics/analytics.mjs} +0 -0
- /package/{esm2015/analytics/angular-fire-analytics.js → esm2022/analytics/angular-fire-analytics.mjs} +0 -0
- /package/{esm2015/analytics/firebase.js → esm2022/analytics/firebase.mjs} +0 -0
- /package/{esm2015/analytics/public_api.js → esm2022/analytics/public_api.mjs} +0 -0
- /package/{esm2015/angular-fire.js → esm2022/angular-fire.mjs} +0 -0
- /package/{esm2015/app/angular-fire-app.js → esm2022/app/angular-fire-app.mjs} +0 -0
- /package/{esm2015/app/app.js → esm2022/app/app.mjs} +0 -0
- /package/{esm2015/app/firebase.js → esm2022/app/firebase.mjs} +0 -0
- /package/{esm2015/app/public_api.js → esm2022/app/public_api.mjs} +0 -0
- /package/{esm2015/app-check/angular-fire-app-check.js → esm2022/app-check/angular-fire-app-check.mjs} +0 -0
- /package/{esm2015/app-check/firebase.js → esm2022/app-check/firebase.mjs} +0 -0
- /package/{esm2015/auth/angular-fire-auth.js → esm2022/auth/angular-fire-auth.mjs} +0 -0
- /package/{esm2015/auth/auth.js → esm2022/auth/auth.mjs} +0 -0
- /package/{esm2015/auth/firebase.js → esm2022/auth/firebase.mjs} +0 -0
- /package/{esm2015/auth/public_api.js → esm2022/auth/public_api.mjs} +0 -0
- /package/{esm2015/auth/rxfire.js → esm2022/auth/rxfire.mjs} +0 -0
- /package/{esm2015/auth-guard/angular-fire-auth-guard.js → esm2022/auth-guard/angular-fire-auth-guard.mjs} +0 -0
- /package/{esm2015/auth-guard/public_api.js → esm2022/auth-guard/public_api.mjs} +0 -0
- /package/{esm2015/compat/analytics/angular-fire-compat-analytics.js → esm2022/compat/analytics/angular-fire-compat-analytics.mjs} +0 -0
- /package/{esm2015/compat/analytics/base.js → esm2022/compat/analytics/base.mjs} +0 -0
- /package/{esm2015/compat/analytics/public_api.js → esm2022/compat/analytics/public_api.mjs} +0 -0
- /package/{esm2015/compat/angular-fire-compat.js → esm2022/compat/angular-fire-compat.mjs} +0 -0
- /package/{esm2015/compat/auth/angular-fire-compat-auth.js → esm2022/compat/auth/angular-fire-compat-auth.mjs} +0 -0
- /package/{esm2015/compat/auth/base.js → esm2022/compat/auth/base.mjs} +0 -0
- /package/{esm2015/compat/auth-guard/angular-fire-compat-auth-guard.js → esm2022/compat/auth-guard/angular-fire-compat-auth-guard.mjs} +0 -0
- /package/{esm2015/compat/auth-guard/public_api.js → esm2022/compat/auth-guard/public_api.mjs} +0 -0
- /package/{esm2015/compat/database/angular-fire-compat-database.js → esm2022/compat/database/angular-fire-compat-database.mjs} +0 -0
- /package/{esm2015/compat/database/interfaces.js → esm2022/compat/database/interfaces.mjs} +0 -0
- /package/{esm2015/compat/database/list/audit-trail.js → esm2022/compat/database/list/audit-trail.mjs} +0 -0
- /package/{esm2015/compat/database/list/changes.js → esm2022/compat/database/list/changes.mjs} +0 -0
- /package/{esm2015/compat/database/list/data-operation.js → esm2022/compat/database/list/data-operation.mjs} +0 -0
- /package/{esm2015/compat/database/list/remove.js → esm2022/compat/database/list/remove.mjs} +0 -0
- /package/{esm2015/compat/database/list/snapshot-changes.js → esm2022/compat/database/list/snapshot-changes.mjs} +0 -0
- /package/{esm2015/compat/database/list/state-changes.js → esm2022/compat/database/list/state-changes.mjs} +0 -0
- /package/{esm2015/compat/database/list/utils.js → esm2022/compat/database/list/utils.mjs} +0 -0
- /package/{esm2015/compat/database/object/create-reference.js → esm2022/compat/database/object/create-reference.mjs} +0 -0
- /package/{esm2015/compat/database/object/snapshot-changes.js → esm2022/compat/database/object/snapshot-changes.mjs} +0 -0
- /package/{esm2015/compat/database/observable/fromRef.js → esm2022/compat/database/observable/fromRef.mjs} +0 -0
- /package/{esm2015/compat/database/public_api.js → esm2022/compat/database/public_api.mjs} +0 -0
- /package/{esm2015/compat/database/utils.js → esm2022/compat/database/utils.mjs} +0 -0
- /package/{esm2015/compat/firebase.app.js → esm2022/compat/firebase.app.mjs} +0 -0
- /package/{esm2015/compat/firestore/angular-fire-compat-firestore.js → esm2022/compat/firestore/angular-fire-compat-firestore.mjs} +0 -0
- /package/{esm2015/compat/firestore/public_api.js → esm2022/compat/firestore/public_api.mjs} +0 -0
- /package/{esm2015/compat/functions/angular-fire-compat-functions.js → esm2022/compat/functions/angular-fire-compat-functions.mjs} +0 -0
- /package/{esm2015/compat/functions/base.js → esm2022/compat/functions/base.mjs} +0 -0
- /package/{esm2015/compat/messaging/angular-fire-compat-messaging.js → esm2022/compat/messaging/angular-fire-compat-messaging.mjs} +0 -0
- /package/{esm2015/compat/messaging/base.js → esm2022/compat/messaging/base.mjs} +0 -0
- /package/{esm2015/compat/messaging/public_api.js → esm2022/compat/messaging/public_api.mjs} +0 -0
- /package/{esm2015/compat/performance/angular-fire-compat-performance.js → esm2022/compat/performance/angular-fire-compat-performance.mjs} +0 -0
- /package/{esm2015/compat/performance/base.js → esm2022/compat/performance/base.mjs} +0 -0
- /package/{esm2015/compat/performance/public_api.js → esm2022/compat/performance/public_api.mjs} +0 -0
- /package/{esm2015/compat/public_api.js → esm2022/compat/public_api.mjs} +0 -0
- /package/{esm2015/compat/remote-config/angular-fire-compat-remote-config.js → esm2022/compat/remote-config/angular-fire-compat-remote-config.mjs} +0 -0
- /package/{esm2015/compat/remote-config/base.js → esm2022/compat/remote-config/base.mjs} +0 -0
- /package/{esm2015/compat/remote-config/interfaces.js → esm2022/compat/remote-config/interfaces.mjs} +0 -0
- /package/{esm2015/compat/remote-config/public_api.js → esm2022/compat/remote-config/public_api.mjs} +0 -0
- /package/{esm2015/compat/storage/angular-fire-compat-storage.js → esm2022/compat/storage/angular-fire-compat-storage.mjs} +0 -0
- /package/{esm2015/compat/storage/interfaces.js → esm2022/compat/storage/interfaces.mjs} +0 -0
- /package/{esm2015/compat/storage/observable/fromTask.js → esm2022/compat/storage/observable/fromTask.mjs} +0 -0
- /package/{esm2015/compat/storage/public_api.js → esm2022/compat/storage/public_api.mjs} +0 -0
- /package/{esm2015/compat/storage/ref.js → esm2022/compat/storage/ref.mjs} +0 -0
- /package/{esm2015/compat/storage/task.js → esm2022/compat/storage/task.mjs} +0 -0
- /package/{esm2015/database/angular-fire-database.js → esm2022/database/angular-fire-database.mjs} +0 -0
- /package/{esm2015/database/database.js → esm2022/database/database.mjs} +0 -0
- /package/{esm2015/database/firebase.js → esm2022/database/firebase.mjs} +0 -0
- /package/{esm2015/database/public_api.js → esm2022/database/public_api.mjs} +0 -0
- /package/{esm2015/database/rxfire.js → esm2022/database/rxfire.mjs} +0 -0
- /package/{esm2015/firestore/angular-fire-firestore.js → esm2022/firestore/angular-fire-firestore.mjs} +0 -0
- /package/{esm2015/firestore/firebase.js → esm2022/firestore/firebase.mjs} +0 -0
- /package/{esm2015/firestore/firestore.js → esm2022/firestore/firestore.mjs} +0 -0
- /package/{esm2015/firestore/lite/angular-fire-firestore-lite.js → esm2022/firestore/lite/angular-fire-firestore-lite.mjs} +0 -0
- /package/{esm2015/firestore/lite/firebase.js → esm2022/firestore/lite/firebase.mjs} +0 -0
- /package/{esm2015/firestore/lite/lite.js → esm2022/firestore/lite/lite.mjs} +0 -0
- /package/{esm2015/firestore/lite/public_api.js → esm2022/firestore/lite/public_api.mjs} +0 -0
- /package/{esm2015/firestore/lite/rxfire.js → esm2022/firestore/lite/rxfire.mjs} +0 -0
- /package/{esm2015/firestore/public_api.js → esm2022/firestore/public_api.mjs} +0 -0
- /package/{esm2015/functions/angular-fire-functions.js → esm2022/functions/angular-fire-functions.mjs} +0 -0
- /package/{esm2015/functions/firebase.js → esm2022/functions/firebase.mjs} +0 -0
- /package/{esm2015/functions/functions.js → esm2022/functions/functions.mjs} +0 -0
- /package/{esm2015/functions/public_api.js → esm2022/functions/public_api.mjs} +0 -0
- /package/{esm2015/functions/rxfire.js → esm2022/functions/rxfire.mjs} +0 -0
- /package/{esm2015/messaging/angular-fire-messaging.js → esm2022/messaging/angular-fire-messaging.mjs} +0 -0
- /package/{esm2015/messaging/firebase.js → esm2022/messaging/firebase.mjs} +0 -0
- /package/{esm2015/messaging/messaging.js → esm2022/messaging/messaging.mjs} +0 -0
- /package/{esm2015/messaging/public_api.js → esm2022/messaging/public_api.mjs} +0 -0
- /package/{esm2015/performance/angular-fire-performance.js → esm2022/performance/angular-fire-performance.mjs} +0 -0
- /package/{esm2015/performance/firebase.js → esm2022/performance/firebase.mjs} +0 -0
- /package/{esm2015/performance/performance.js → esm2022/performance/performance.mjs} +0 -0
- /package/{esm2015/performance/public_api.js → esm2022/performance/public_api.mjs} +0 -0
- /package/{esm2015/performance/rxfire.js → esm2022/performance/rxfire.mjs} +0 -0
- /package/{esm2015/public_api.js → esm2022/public_api.mjs} +0 -0
- /package/{esm2015/remote-config/angular-fire-remote-config.js → esm2022/remote-config/angular-fire-remote-config.mjs} +0 -0
- /package/{esm2015/remote-config/firebase.js → esm2022/remote-config/firebase.mjs} +0 -0
- /package/{esm2015/remote-config/public_api.js → esm2022/remote-config/public_api.mjs} +0 -0
- /package/{esm2015/remote-config/remote-config.js → esm2022/remote-config/remote-config.mjs} +0 -0
- /package/{esm2015/remote-config/rxfire.js → esm2022/remote-config/rxfire.mjs} +0 -0
- /package/{esm2015/storage/angular-fire-storage.js → esm2022/storage/angular-fire-storage.mjs} +0 -0
- /package/{esm2015/storage/firebase.js → esm2022/storage/firebase.mjs} +0 -0
- /package/{esm2015/storage/public_api.js → esm2022/storage/public_api.mjs} +0 -0
- /package/{esm2015/storage/rxfire.js → esm2022/storage/rxfire.mjs} +0 -0
- /package/{esm2015/storage/storage.js → esm2022/storage/storage.mjs} +0 -0
- /package/firestore/{angular-fire-firestore.d.ts → index.d.ts} +0 -0
- /package/firestore/lite/{angular-fire-firestore-lite.d.ts → index.d.ts} +0 -0
- /package/functions/{angular-fire-functions.d.ts → index.d.ts} +0 -0
- /package/{angular-fire.d.ts → index.d.ts} +0 -0
- /package/messaging/{angular-fire-messaging.d.ts → index.d.ts} +0 -0
- /package/performance/{angular-fire-performance.d.ts → index.d.ts} +0 -0
- /package/remote-config/{angular-fire-remote-config.d.ts → index.d.ts} +0 -0
- /package/storage/{angular-fire-storage.d.ts → index.d.ts} +0 -0
package/app-check/app-check.d.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { AppCheck as FirebaseAppCheck } from 'firebase/app-check';
|
|
2
|
-
export declare const APP_CHECK_PROVIDER_NAME = "app-check";
|
|
3
2
|
export interface AppCheck extends FirebaseAppCheck {
|
|
4
3
|
}
|
|
5
4
|
export declare class AppCheck {
|
|
6
5
|
constructor(appCheck: FirebaseAppCheck);
|
|
7
6
|
}
|
|
8
|
-
export interface AppCheckInstances extends Array<FirebaseAppCheck> {
|
|
9
|
-
}
|
|
10
|
-
export declare class AppCheckInstances {
|
|
11
|
-
constructor();
|
|
12
|
-
}
|
|
13
7
|
export declare const appCheckInstance$: import("rxjs").Observable<FirebaseAppCheck>;
|
|
@@ -4,7 +4,6 @@ import { AppCheck } from './app-check';
|
|
|
4
4
|
import { FirebaseApp } from '@angular/fire/app';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare const PROVIDED_APP_CHECK_INSTANCES: InjectionToken<AppCheck[]>;
|
|
7
|
-
export declare const APP_CHECK_NAMESPACE_SYMBOL: unique symbol;
|
|
8
7
|
export declare function defaultAppCheckInstanceFactory(provided: FirebaseAppCheck[] | undefined, defaultApp: FirebaseApp): AppCheck;
|
|
9
8
|
export declare function appCheckInstanceFactory(fn: (injector: Injector) => FirebaseAppCheck): (zone: NgZone, injector: Injector, platformId: Object) => AppCheck;
|
|
10
9
|
export declare class AppCheckModule {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export { AppCheck,
|
|
1
|
+
export { AppCheck, appCheckInstance$ } from './app-check';
|
|
2
|
+
export { ɵAppCheckInstances as AppCheckInstances } from '@angular/fire';
|
|
2
3
|
export { provideAppCheck, AppCheckModule } from './app-check.module';
|
|
3
4
|
export * from './firebase';
|
|
@@ -3,8 +3,8 @@ import { Observable, UnaryFunction } from 'rxjs';
|
|
|
3
3
|
import { Auth } from '@angular/fire/auth';
|
|
4
4
|
import { User } from 'firebase/auth';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export
|
|
7
|
-
export
|
|
6
|
+
export type AuthPipeGenerator = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => AuthPipe;
|
|
7
|
+
export type AuthPipe = UnaryFunction<Observable<User | null>, Observable<boolean | string | any[]>>;
|
|
8
8
|
export declare const loggedIn: AuthPipe;
|
|
9
9
|
export declare class AuthGuard implements CanActivate {
|
|
10
10
|
private router;
|
|
@@ -21,9 +21,9 @@ export declare const canActivate: (pipe: AuthPipeGenerator) => {
|
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
export declare const isNotAnonymous: AuthPipe;
|
|
24
|
-
export declare const idTokenResult: import("rxjs").OperatorFunction<User,
|
|
24
|
+
export declare const idTokenResult: import("rxjs").OperatorFunction<User, import("@firebase/auth").IdTokenResult>;
|
|
25
25
|
export declare const emailVerified: AuthPipe;
|
|
26
|
-
export declare const customClaims: UnaryFunction<Observable<User>, Observable<any>>;
|
|
26
|
+
export declare const customClaims: UnaryFunction<Observable<User>, Observable<any[] | import("@firebase/auth").ParsedToken>>;
|
|
27
27
|
export declare const hasCustomClaim: (claim: string) => AuthPipe;
|
|
28
28
|
export declare const redirectUnauthorizedTo: (redirect: string | any[]) => AuthPipe;
|
|
29
29
|
export declare const redirectLoggedInTo: (redirect: string | any[]) => AuthPipe;
|
package/compat/auth/auth.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { AppCheckInstances } from '@angular/fire/app-check';
|
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export interface AngularFireAuth extends ɵPromiseProxy<firebase.auth.Auth> {
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
type UseEmulatorArguments = Parameters<firebase.auth.Auth['useEmulator']>;
|
|
13
13
|
export declare const USE_EMULATOR: InjectionToken<[url: string]>;
|
|
14
14
|
export declare const SETTINGS: InjectionToken<firebase.auth.AuthSettings>;
|
|
15
15
|
export declare const TENANT_ID: InjectionToken<string>;
|
|
@@ -3,8 +3,8 @@ import { Observable, UnaryFunction } from 'rxjs';
|
|
|
3
3
|
import firebase from 'firebase/compat/app';
|
|
4
4
|
import { AngularFireAuth } from '@angular/fire/compat/auth';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export
|
|
7
|
-
export
|
|
6
|
+
export type AuthPipeGenerator = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => AuthPipe;
|
|
7
|
+
export type AuthPipe = UnaryFunction<Observable<firebase.User | null>, Observable<boolean | string | any[]>>;
|
|
8
8
|
export declare const loggedIn: AuthPipe;
|
|
9
9
|
export declare class AngularFireAuthGuard implements CanActivate {
|
|
10
10
|
private router;
|
|
@@ -21,9 +21,11 @@ export declare const canActivate: (pipe: AuthPipeGenerator) => {
|
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
export declare const isNotAnonymous: AuthPipe;
|
|
24
|
-
export declare const idTokenResult: import("rxjs").OperatorFunction<firebase.User,
|
|
24
|
+
export declare const idTokenResult: import("rxjs").OperatorFunction<firebase.User, firebase.auth.IdTokenResult>;
|
|
25
25
|
export declare const emailVerified: AuthPipe;
|
|
26
|
-
export declare const customClaims: UnaryFunction<Observable<firebase.User>, Observable<any
|
|
26
|
+
export declare const customClaims: UnaryFunction<Observable<firebase.User>, Observable<any[] | {
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
}>>;
|
|
27
29
|
export declare const hasCustomClaim: (claim: string) => AuthPipe;
|
|
28
30
|
export declare const redirectUnauthorizedTo: (redirect: string | any[]) => AuthPipe;
|
|
29
31
|
export declare const redirectLoggedInTo: (redirect: string | any[]) => AuthPipe;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import firebase from 'firebase/compat/app';
|
|
3
|
-
export
|
|
3
|
+
export type FirebaseOperation = string | firebase.database.Reference | firebase.database.DataSnapshot;
|
|
4
4
|
export interface AngularFireList<T> {
|
|
5
5
|
query: DatabaseQuery;
|
|
6
6
|
valueChanges(events?: ChildEvent[], options?: {}): Observable<T[]>;
|
|
@@ -31,9 +31,9 @@ export interface FirebaseOperationCases {
|
|
|
31
31
|
snapshotCase?: () => Promise<void>;
|
|
32
32
|
unwrappedSnapshotCase?: () => Promise<void>;
|
|
33
33
|
}
|
|
34
|
-
export
|
|
35
|
-
export
|
|
36
|
-
export
|
|
34
|
+
export type QueryFn = (ref: DatabaseReference) => DatabaseQuery;
|
|
35
|
+
export type ChildEvent = 'child_added' | 'child_removed' | 'child_changed' | 'child_moved';
|
|
36
|
+
export type ListenEvent = 'value' | ChildEvent;
|
|
37
37
|
export interface Action<T> {
|
|
38
38
|
type: ListenEvent;
|
|
39
39
|
payload: T;
|
|
@@ -42,8 +42,8 @@ export interface AngularFireAction<T> extends Action<T> {
|
|
|
42
42
|
prevKey: string | null | undefined;
|
|
43
43
|
key: string | null;
|
|
44
44
|
}
|
|
45
|
-
export
|
|
46
|
-
export
|
|
45
|
+
export type SnapshotAction<T> = AngularFireAction<DatabaseSnapshot<T>>;
|
|
46
|
+
export type Primitive = number | string | boolean;
|
|
47
47
|
export interface DatabaseSnapshotExists<T> extends firebase.database.DataSnapshot {
|
|
48
48
|
exists(): true;
|
|
49
49
|
val(): T;
|
|
@@ -54,9 +54,9 @@ export interface DatabaseSnapshotDoesNotExist<T> extends firebase.database.DataS
|
|
|
54
54
|
val(): null;
|
|
55
55
|
forEach(action: (a: DatabaseSnapshot<T>) => boolean): boolean;
|
|
56
56
|
}
|
|
57
|
-
export
|
|
58
|
-
export
|
|
59
|
-
export
|
|
60
|
-
export
|
|
61
|
-
export
|
|
62
|
-
export
|
|
57
|
+
export type DatabaseSnapshot<T> = DatabaseSnapshotExists<T> | DatabaseSnapshotDoesNotExist<T>;
|
|
58
|
+
export type DatabaseReference = firebase.database.Reference;
|
|
59
|
+
export type DatabaseQuery = firebase.database.Query;
|
|
60
|
+
export type DataSnapshot = firebase.database.DataSnapshot;
|
|
61
|
+
export type QueryReference = DatabaseReference | DatabaseQuery;
|
|
62
|
+
export type PathReference = QueryReference | string;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Subscriber } from 'rxjs';
|
|
2
2
|
import firebase from 'firebase/compat/app';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export interface DocumentSnapshotExists<T> extends firebase.firestore.DocumentSnapshot {
|
|
3
|
+
export type Settings = firebase.firestore.Settings;
|
|
4
|
+
export type CollectionReference<T = DocumentData> = firebase.firestore.CollectionReference<T>;
|
|
5
|
+
export type DocumentReference<T = DocumentData> = firebase.firestore.DocumentReference<T>;
|
|
6
|
+
export type PersistenceSettings = firebase.firestore.PersistenceSettings;
|
|
7
|
+
export type DocumentChangeType = firebase.firestore.DocumentChangeType;
|
|
8
|
+
export type SnapshotOptions = firebase.firestore.SnapshotOptions;
|
|
9
|
+
export type FieldPath = firebase.firestore.FieldPath;
|
|
10
|
+
export type Query<T = DocumentData> = firebase.firestore.Query<T>;
|
|
11
|
+
export type SetOptions = firebase.firestore.SetOptions;
|
|
12
|
+
export type DocumentData = firebase.firestore.DocumentData;
|
|
13
|
+
export interface DocumentSnapshotExists<T> extends firebase.firestore.DocumentSnapshot<T> {
|
|
14
14
|
readonly exists: true;
|
|
15
15
|
data(options?: SnapshotOptions): T;
|
|
16
16
|
}
|
|
@@ -19,14 +19,14 @@ export interface DocumentSnapshotDoesNotExist extends firebase.firestore.Documen
|
|
|
19
19
|
data(options?: SnapshotOptions): undefined;
|
|
20
20
|
get(fieldPath: string | FieldPath, options?: SnapshotOptions): undefined;
|
|
21
21
|
}
|
|
22
|
-
export
|
|
23
|
-
export interface QueryDocumentSnapshot<T> extends firebase.firestore.QueryDocumentSnapshot {
|
|
22
|
+
export type DocumentSnapshot<T> = DocumentSnapshotExists<T> | DocumentSnapshotDoesNotExist;
|
|
23
|
+
export interface QueryDocumentSnapshot<T> extends firebase.firestore.QueryDocumentSnapshot<T> {
|
|
24
24
|
data(options?: SnapshotOptions): T;
|
|
25
25
|
}
|
|
26
|
-
export interface QuerySnapshot<T> extends firebase.firestore.QuerySnapshot {
|
|
26
|
+
export interface QuerySnapshot<T> extends firebase.firestore.QuerySnapshot<T> {
|
|
27
27
|
readonly docs: QueryDocumentSnapshot<T>[];
|
|
28
28
|
}
|
|
29
|
-
export interface DocumentChange<T> extends firebase.firestore.DocumentChange {
|
|
29
|
+
export interface DocumentChange<T> extends firebase.firestore.DocumentChange<T> {
|
|
30
30
|
readonly doc: QueryDocumentSnapshot<T>;
|
|
31
31
|
}
|
|
32
32
|
export interface DocumentChangeAction<T> {
|
|
@@ -40,8 +40,8 @@ export interface Action<T> {
|
|
|
40
40
|
export interface Reference<T> {
|
|
41
41
|
onSnapshot: (options: firebase.firestore.SnapshotListenOptions, sub: Subscriber<any>) => any;
|
|
42
42
|
}
|
|
43
|
-
export
|
|
44
|
-
export
|
|
43
|
+
export type QueryFn<T = DocumentData> = (ref: CollectionReference<T>) => Query<T>;
|
|
44
|
+
export type QueryGroupFn<T = DocumentData> = (query: Query<T>) => Query<T>;
|
|
45
45
|
/**
|
|
46
46
|
* A structure that provides an association between a reference
|
|
47
47
|
* and a query on that reference. Note: Performing operations
|
package/compat/proxy.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { NgZone } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
type MyFunction = (...args: any[]) => any;
|
|
4
|
+
type FunctionPropertyNames<T> = {
|
|
5
5
|
[K in keyof T]: T[K] extends MyFunction ? K : never;
|
|
6
6
|
}[keyof T];
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
type ReturnTypeOrNever<T> = T extends MyFunction ? ReturnType<T> : never;
|
|
8
|
+
type ParametersOrNever<T> = T extends MyFunction ? Parameters<T> : never;
|
|
9
|
+
type PromiseReturningFunctionPropertyNames<T> = {
|
|
10
10
|
[K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? K : never;
|
|
11
11
|
}[FunctionPropertyNames<T>];
|
|
12
|
-
|
|
12
|
+
type NonPromiseReturningFunctionPropertyNames<T> = {
|
|
13
13
|
[K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? never : K;
|
|
14
14
|
}[FunctionPropertyNames<T>];
|
|
15
|
-
|
|
15
|
+
type NonFunctionPropertyNames<T> = {
|
|
16
16
|
[K in keyof T]: T[K] extends MyFunction ? never : K;
|
|
17
17
|
}[keyof T];
|
|
18
|
-
export
|
|
18
|
+
export type ɵPromiseProxy<T> = {
|
|
19
19
|
[K in NonFunctionPropertyNames<T>]: Promise<T[K]>;
|
|
20
20
|
} & {
|
|
21
21
|
[K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: ParametersOrNever<T[K]>) => Promise<ReturnTypeOrNever<T[K]>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import firebase from 'firebase/compat/app';
|
|
2
|
-
export
|
|
2
|
+
export type Settings = firebase.remoteConfig.Settings;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import firebase from 'firebase/compat/app';
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
2
|
+
export type UploadTask = firebase.storage.UploadTask;
|
|
3
|
+
export type UploadTaskSnapshot = firebase.storage.UploadTaskSnapshot;
|
|
4
|
+
export type UploadMetadata = firebase.storage.UploadMetadata;
|
|
5
|
+
export type SettableMetadata = firebase.storage.SettableMetadata;
|
|
6
|
+
export type Reference = firebase.storage.Reference;
|
|
7
|
+
export type StringFormat = firebase.storage.StringFormat;
|
|
8
|
+
export type ListResult = firebase.storage.ListResult;
|
|
9
|
+
export type ListOptions = firebase.storage.ListOptions;
|
|
@@ -13,7 +13,7 @@ export declare class GetDownloadURLPipe implements PipeTransform, OnDestroy {
|
|
|
13
13
|
transform(path: string): any;
|
|
14
14
|
ngOnDestroy(): void;
|
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<GetDownloadURLPipe, [null, null, { optional: true; }]>;
|
|
16
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<GetDownloadURLPipe, "getDownloadURL">;
|
|
16
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<GetDownloadURLPipe, "getDownloadURL", false>;
|
|
17
17
|
}
|
|
18
18
|
export declare class GetDownloadURLPipeModule {
|
|
19
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<GetDownloadURLPipeModule, never>;
|
package/core.d.ts
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import { Version } from '@angular/core';
|
|
2
2
|
import { FirebaseApp } from 'firebase/app';
|
|
3
|
+
import type { AppCheck } from 'firebase/app-check';
|
|
3
4
|
export declare const VERSION: Version;
|
|
4
|
-
export declare const
|
|
5
|
-
async: () => any;
|
|
6
|
-
sync: () => any;
|
|
7
|
-
};
|
|
8
|
-
export declare const ɵisRemoteConfigSupportedFactory: {
|
|
9
|
-
async: () => any;
|
|
10
|
-
sync: () => any;
|
|
11
|
-
};
|
|
12
|
-
export declare const ɵisAnalyticsSupportedFactory: {
|
|
13
|
-
async: () => any;
|
|
14
|
-
sync: () => any;
|
|
15
|
-
};
|
|
5
|
+
export declare const ɵisSupportedError: (module: string) => string;
|
|
16
6
|
export declare function ɵgetDefaultInstanceOf<T = unknown>(identifier: string, provided: T[] | undefined, defaultApp: FirebaseApp): T | undefined;
|
|
17
7
|
export declare const ɵgetAllInstancesOf: <T = unknown>(identifier: string, app?: FirebaseApp) => T[];
|
|
8
|
+
export interface ɵAppCheckInstances extends Array<AppCheck> {
|
|
9
|
+
}
|
|
10
|
+
export declare class ɵAppCheckInstances {
|
|
11
|
+
constructor();
|
|
12
|
+
}
|
|
13
|
+
export declare const ɵAPP_CHECK_PROVIDER_NAME = "app-check";
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { NgModule, Optional, NgZone, InjectionToken, APP_INITIALIZER, Injector } from '@angular/core';
|
|
2
|
+
import { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';
|
|
3
|
+
import { Analytics, ANALYTICS_PROVIDER_NAME, AnalyticsInstances } from './analytics';
|
|
4
|
+
import { FirebaseApps, FirebaseApp } from '@angular/fire/app';
|
|
5
|
+
import { registerVersion } from 'firebase/app';
|
|
6
|
+
import { ScreenTrackingService } from './screen-tracking.service';
|
|
7
|
+
import { UserTrackingService } from './user-tracking.service';
|
|
8
|
+
import { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "./screen-tracking.service";
|
|
11
|
+
import * as i2 from "./user-tracking.service";
|
|
12
|
+
export const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken('angularfire2.analytics-instances');
|
|
13
|
+
export function defaultAnalyticsInstanceFactory(provided, defaultApp) {
|
|
14
|
+
if (!isAnalyticsSupportedFactory.sync()) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const defaultAnalytics = ɵgetDefaultInstanceOf(ANALYTICS_PROVIDER_NAME, provided, defaultApp);
|
|
18
|
+
return defaultAnalytics && new Analytics(defaultAnalytics);
|
|
19
|
+
}
|
|
20
|
+
export function analyticsInstanceFactory(fn) {
|
|
21
|
+
return (zone, injector) => {
|
|
22
|
+
if (!isAnalyticsSupportedFactory.sync()) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const analytics = zone.runOutsideAngular(() => fn(injector));
|
|
26
|
+
return new Analytics(analytics);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const ANALYTICS_INSTANCES_PROVIDER = {
|
|
30
|
+
provide: AnalyticsInstances,
|
|
31
|
+
deps: [
|
|
32
|
+
[new Optional(), PROVIDED_ANALYTICS_INSTANCES],
|
|
33
|
+
]
|
|
34
|
+
};
|
|
35
|
+
const DEFAULT_ANALYTICS_INSTANCE_PROVIDER = {
|
|
36
|
+
provide: Analytics,
|
|
37
|
+
useFactory: defaultAnalyticsInstanceFactory,
|
|
38
|
+
deps: [
|
|
39
|
+
[new Optional(), PROVIDED_ANALYTICS_INSTANCES],
|
|
40
|
+
FirebaseApp,
|
|
41
|
+
]
|
|
42
|
+
};
|
|
43
|
+
export class AnalyticsModule {
|
|
44
|
+
constructor(_screenTrackingService, _userTrackingService) {
|
|
45
|
+
registerVersion('angularfire', VERSION.full, 'analytics');
|
|
46
|
+
}
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AnalyticsModule, deps: [{ token: i1.ScreenTrackingService, optional: true }, { token: i2.UserTrackingService, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
48
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: AnalyticsModule });
|
|
49
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AnalyticsModule, providers: [
|
|
50
|
+
DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
|
|
51
|
+
ANALYTICS_INSTANCES_PROVIDER,
|
|
52
|
+
{
|
|
53
|
+
provide: APP_INITIALIZER,
|
|
54
|
+
useValue: isAnalyticsSupportedFactory.async,
|
|
55
|
+
multi: true,
|
|
56
|
+
}
|
|
57
|
+
] });
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AnalyticsModule, decorators: [{
|
|
60
|
+
type: NgModule,
|
|
61
|
+
args: [{
|
|
62
|
+
providers: [
|
|
63
|
+
DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
|
|
64
|
+
ANALYTICS_INSTANCES_PROVIDER,
|
|
65
|
+
{
|
|
66
|
+
provide: APP_INITIALIZER,
|
|
67
|
+
useValue: isAnalyticsSupportedFactory.async,
|
|
68
|
+
multi: true,
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}]
|
|
72
|
+
}], ctorParameters: function () { return [{ type: i1.ScreenTrackingService, decorators: [{
|
|
73
|
+
type: Optional
|
|
74
|
+
}] }, { type: i2.UserTrackingService, decorators: [{
|
|
75
|
+
type: Optional
|
|
76
|
+
}] }]; } });
|
|
77
|
+
export function provideAnalytics(fn, ...deps) {
|
|
78
|
+
return {
|
|
79
|
+
ngModule: AnalyticsModule,
|
|
80
|
+
providers: [{
|
|
81
|
+
provide: PROVIDED_ANALYTICS_INSTANCES,
|
|
82
|
+
useFactory: analyticsInstanceFactory(fn),
|
|
83
|
+
multi: true,
|
|
84
|
+
deps: [
|
|
85
|
+
NgZone,
|
|
86
|
+
Injector,
|
|
87
|
+
ɵAngularFireSchedulers,
|
|
88
|
+
FirebaseApps,
|
|
89
|
+
...deps,
|
|
90
|
+
]
|
|
91
|
+
}]
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmFseXRpY3MvYW5hbHl0aWNzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF1QixlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRixPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQWMsa0NBQWtDLENBQUMsQ0FBQztBQUVoSCxNQUFNLFVBQVUsK0JBQStCLENBQUMsUUFBdUMsRUFBRSxVQUF1QjtJQUM5RyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQztLQUFFO0lBQ3pELE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQW9CLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNqSCxPQUFPLGdCQUFnQixJQUFJLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxFQUE2QztJQUNwRixPQUFPLENBQUMsSUFBWSxFQUFFLFFBQWtCLEVBQUUsRUFBRTtRQUMxQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztTQUFFO1FBQ3pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLDRCQUE0QixHQUFHO0lBQ25DLE9BQU8sRUFBRSxrQkFBa0I7SUFDM0IsSUFBSSxFQUFFO1FBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLDRCQUE0QixDQUFFO0tBQ2hEO0NBQ0YsQ0FBQztBQUVGLE1BQU0sbUNBQW1DLEdBQUc7SUFDMUMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLCtCQUErQjtJQUMzQyxJQUFJLEVBQUU7UUFDSixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsNEJBQTRCLENBQUU7UUFDL0MsV0FBVztLQUNaO0NBQ0YsQ0FBQztBQWFGLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ2Msc0JBQTZDLEVBQzdDLG9CQUF5QztRQUVyRCxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDNUQsQ0FBQzt1R0FOVSxlQUFlO3dHQUFmLGVBQWU7d0dBQWYsZUFBZSxhQVZmO1lBQ1QsbUNBQW1DO1lBQ25DLDRCQUE0QjtZQUM1QjtnQkFDRSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsUUFBUSxFQUFFLDJCQUEyQixDQUFDLEtBQUs7Z0JBQzNDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7MkZBRVUsZUFBZTtrQkFYM0IsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUU7d0JBQ1QsbUNBQW1DO3dCQUNuQyw0QkFBNEI7d0JBQzVCOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixRQUFRLEVBQUUsMkJBQTJCLENBQUMsS0FBSzs0QkFDM0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7OzBCQUdJLFFBQVE7OzBCQUNSLFFBQVE7O0FBTWIsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEVBQTZDLEVBQUUsR0FBRyxJQUFXO0lBQzVGLE9BQU87UUFDTCxRQUFRLEVBQUUsZUFBZTtRQUN6QixTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxVQUFVLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUU7b0JBQ0osTUFBTTtvQkFDTixRQUFRO29CQUNSLHNCQUFzQjtvQkFDdEIsWUFBWTtvQkFDWixHQUFHLElBQUk7aUJBQ1I7YUFDRixDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgT3B0aW9uYWwsIE5nWm9uZSwgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIEFQUF9JTklUSUFMSVpFUiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuYWx5dGljcyBhcyBGaXJlYmFzZUFuYWx5dGljcyB9IGZyb20gJ2ZpcmViYXNlL2FuYWx5dGljcyc7XG5pbXBvcnQgeyDJtWdldERlZmF1bHRJbnN0YW5jZU9mLCDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycywgVkVSU0lPTiB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgQW5hbHl0aWNzLCBBTkFMWVRJQ1NfUFJPVklERVJfTkFNRSwgQW5hbHl0aWNzSW5zdGFuY2VzIH0gZnJvbSAnLi9hbmFseXRpY3MnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBzLCBGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJztcbmltcG9ydCB7IHJlZ2lzdGVyVmVyc2lvbiB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBTY3JlZW5UcmFja2luZ1NlcnZpY2UgfSBmcm9tICcuL3NjcmVlbi10cmFja2luZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJUcmFja2luZ1NlcnZpY2UgfSBmcm9tICcuL3VzZXItdHJhY2tpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBpc0FuYWx5dGljc1N1cHBvcnRlZEZhY3RvcnkgfSBmcm9tICcuL2lzLWFuYWx5dGljcy1zdXBwb3J0ZWQtZmFjdG9yeSc7XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFRF9BTkFMWVRJQ1NfSU5TVEFOQ0VTID0gbmV3IEluamVjdGlvblRva2VuPEFuYWx5dGljc1tdPignYW5ndWxhcmZpcmUyLmFuYWx5dGljcy1pbnN0YW5jZXMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRBbmFseXRpY3NJbnN0YW5jZUZhY3RvcnkocHJvdmlkZWQ6IEZpcmViYXNlQW5hbHl0aWNzW118dW5kZWZpbmVkLCBkZWZhdWx0QXBwOiBGaXJlYmFzZUFwcCkge1xuICBpZiAoIWlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeS5zeW5jKCkpIHsgcmV0dXJuIG51bGw7IH1cbiAgY29uc3QgZGVmYXVsdEFuYWx5dGljcyA9IMm1Z2V0RGVmYXVsdEluc3RhbmNlT2Y8RmlyZWJhc2VBbmFseXRpY3M+KEFOQUxZVElDU19QUk9WSURFUl9OQU1FLCBwcm92aWRlZCwgZGVmYXVsdEFwcCk7XG4gIHJldHVybiBkZWZhdWx0QW5hbHl0aWNzICYmIG5ldyBBbmFseXRpY3MoZGVmYXVsdEFuYWx5dGljcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbmFseXRpY3NJbnN0YW5jZUZhY3RvcnkoZm46IChpbmplY3RvcjogSW5qZWN0b3IpID0+IEZpcmViYXNlQW5hbHl0aWNzKSB7XG4gIHJldHVybiAoem9uZTogTmdab25lLCBpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICBpZiAoIWlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeS5zeW5jKCkpIHsgcmV0dXJuIG51bGw7IH1cbiAgICBjb25zdCBhbmFseXRpY3MgPSB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IGZuKGluamVjdG9yKSk7XG4gICAgcmV0dXJuIG5ldyBBbmFseXRpY3MoYW5hbHl0aWNzKTtcbiAgfTtcbn1cblxuY29uc3QgQU5BTFlUSUNTX0lOU1RBTkNFU19QUk9WSURFUiA9IHtcbiAgcHJvdmlkZTogQW5hbHl0aWNzSW5zdGFuY2VzLFxuICBkZXBzOiBbXG4gICAgW25ldyBPcHRpb25hbCgpLCBQUk9WSURFRF9BTkFMWVRJQ1NfSU5TVEFOQ0VTIF0sXG4gIF1cbn07XG5cbmNvbnN0IERFRkFVTFRfQU5BTFlUSUNTX0lOU1RBTkNFX1BST1ZJREVSID0ge1xuICBwcm92aWRlOiBBbmFseXRpY3MsXG4gIHVzZUZhY3Rvcnk6IGRlZmF1bHRBbmFseXRpY3NJbnN0YW5jZUZhY3RvcnksXG4gIGRlcHM6IFtcbiAgICBbbmV3IE9wdGlvbmFsKCksIFBST1ZJREVEX0FOQUxZVElDU19JTlNUQU5DRVMgXSxcbiAgICBGaXJlYmFzZUFwcCxcbiAgXVxufTtcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgREVGQVVMVF9BTkFMWVRJQ1NfSU5TVEFOQ0VfUFJPVklERVIsXG4gICAgQU5BTFlUSUNTX0lOU1RBTkNFU19QUk9WSURFUixcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VWYWx1ZTogaXNBbmFseXRpY3NTdXBwb3J0ZWRGYWN0b3J5LmFzeW5jLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFuYWx5dGljc01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIF9zY3JlZW5UcmFja2luZ1NlcnZpY2U6IFNjcmVlblRyYWNraW5nU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBfdXNlclRyYWNraW5nU2VydmljZTogVXNlclRyYWNraW5nU2VydmljZSxcbiAgKSB7XG4gICAgcmVnaXN0ZXJWZXJzaW9uKCdhbmd1bGFyZmlyZScsIFZFUlNJT04uZnVsbCwgJ2FuYWx5dGljcycpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQW5hbHl0aWNzKGZuOiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBGaXJlYmFzZUFuYWx5dGljcywgLi4uZGVwczogYW55W10pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFuYWx5dGljc01vZHVsZT4ge1xuICByZXR1cm4ge1xuICAgIG5nTW9kdWxlOiBBbmFseXRpY3NNb2R1bGUsXG4gICAgcHJvdmlkZXJzOiBbe1xuICAgICAgcHJvdmlkZTogUFJPVklERURfQU5BTFlUSUNTX0lOU1RBTkNFUyxcbiAgICAgIHVzZUZhY3Rvcnk6IGFuYWx5dGljc0luc3RhbmNlRmFjdG9yeShmbiksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgTmdab25lLFxuICAgICAgICBJbmplY3RvcixcbiAgICAgICAgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsXG4gICAgICAgIEZpcmViYXNlQXBwcyxcbiAgICAgICAgLi4uZGVwcyxcbiAgICAgIF1cbiAgICB9XVxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ɵisSupportedError } from '@angular/fire';
|
|
2
|
+
import { isSupported } from 'firebase/analytics';
|
|
3
|
+
const isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';
|
|
4
|
+
const isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';
|
|
5
|
+
globalThis[isAnalyticsSupportedPromiseSymbol] ||= isSupported().then(it => globalThis[isAnalyticsSupportedValueSymbol] = it).catch(() => globalThis[isAnalyticsSupportedValueSymbol] = false);
|
|
6
|
+
export const isAnalyticsSupportedFactory = {
|
|
7
|
+
async: () => globalThis[isAnalyticsSupportedPromiseSymbol],
|
|
8
|
+
sync: () => {
|
|
9
|
+
const ret = globalThis[isAnalyticsSupportedValueSymbol];
|
|
10
|
+
if (ret === undefined) {
|
|
11
|
+
throw new Error(ɵisSupportedError('Analytics'));
|
|
12
|
+
}
|
|
13
|
+
return ret;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYW5hbHl0aWNzLXN1cHBvcnRlZC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuYWx5dGljcy9pcy1hbmFseXRpY3Mtc3VwcG9ydGVkLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxNQUFNLCtCQUErQixHQUFHLGlEQUFpRCxDQUFDO0FBQzFGLE1BQU0saUNBQWlDLEdBQUcsNENBQTRDLENBQUM7QUFFdkYsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQ3hFLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLEVBQUUsQ0FDakQsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQ1gsVUFBVSxDQUFDLCtCQUErQixDQUFDLEdBQUcsS0FBSyxDQUNwRCxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQztJQUMxRCxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ1QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDeEQsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQUU7UUFDM0UsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IMm1aXNTdXBwb3J0ZWRFcnJvciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgaXNTdXBwb3J0ZWQgfSBmcm9tICdmaXJlYmFzZS9hbmFseXRpY3MnO1xuXG5jb25zdCBpc0FuYWx5dGljc1N1cHBvcnRlZFZhbHVlU3ltYm9sID0gJ19fYW5ndWxhcmZpcmVfc3ltYm9sX19hbmFseXRpY3NJc1N1cHBvcnRlZFZhbHVlJztcbmNvbnN0IGlzQW5hbHl0aWNzU3VwcG9ydGVkUHJvbWlzZVN5bWJvbCA9ICdfX2FuZ3VsYXJmaXJlX3N5bWJvbF9fYW5hbHl0aWNzSXNTdXBwb3J0ZWQnO1xuXG5nbG9iYWxUaGlzW2lzQW5hbHl0aWNzU3VwcG9ydGVkUHJvbWlzZVN5bWJvbF0gfHw9IGlzU3VwcG9ydGVkKCkudGhlbihpdCA9PlxuICBnbG9iYWxUaGlzW2lzQW5hbHl0aWNzU3VwcG9ydGVkVmFsdWVTeW1ib2xdID0gaXRcbikuY2F0Y2goKCkgPT5cbiAgZ2xvYmFsVGhpc1tpc0FuYWx5dGljc1N1cHBvcnRlZFZhbHVlU3ltYm9sXSA9IGZhbHNlXG4pO1xuZXhwb3J0IGNvbnN0IGlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeSA9IHtcbiAgYXN5bmM6ICgpID0+IGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSxcbiAgc3luYzogKCkgPT4ge1xuICAgIGNvbnN0IHJldCA9IGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRWYWx1ZVN5bWJvbF07XG4gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKSB7IHRocm93IG5ldyBFcnJvcijJtWlzU3VwcG9ydGVkRXJyb3IoJ0FuYWx5dGljcycpKTsgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';
|
|
2
|
+
export const isSupported = isAnalyticsSupportedFactory.async;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuYWx5dGljcy9vdmVycmlkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLDJCQUEyQixDQUFDLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeSB9IGZyb20gJy4vaXMtYW5hbHl0aWNzLXN1cHBvcnRlZC1mYWN0b3J5JztcblxuZXhwb3J0IGNvbnN0IGlzU3VwcG9ydGVkID0gaXNBbmFseXRpY3NTdXBwb3J0ZWRGYWN0b3J5LmFzeW5jO1xuXG4iXX0=
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ComponentFactoryResolver, Injectable, NgZone, Optional, Injector } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { distinctUntilChanged, filter, groupBy, map, mergeMap, pairwise, startWith, switchMap } from 'rxjs/operators';
|
|
4
|
+
import { ActivationEnd, Router, ɵEmptyOutletComponent } from '@angular/router';
|
|
5
|
+
import { Title } from '@angular/platform-browser';
|
|
6
|
+
import { VERSION } from '@angular/fire';
|
|
7
|
+
import { registerVersion } from 'firebase/app';
|
|
8
|
+
import { Analytics } from './analytics';
|
|
9
|
+
import { logEvent, isSupported } from './firebase';
|
|
10
|
+
import { UserTrackingService } from './user-tracking.service';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/router";
|
|
13
|
+
import * as i2 from "@angular/platform-browser";
|
|
14
|
+
import * as i3 from "./user-tracking.service";
|
|
15
|
+
const FIREBASE_EVENT_ORIGIN_KEY = 'firebase_event_origin';
|
|
16
|
+
const FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = 'firebase_previous_class';
|
|
17
|
+
const FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = 'firebase_previous_id';
|
|
18
|
+
const FIREBASE_PREVIOUS_SCREEN_NAME_KEY = 'firebase_previous_screen';
|
|
19
|
+
const FIREBASE_SCREEN_CLASS_KEY = 'firebase_screen_class';
|
|
20
|
+
const FIREBASE_SCREEN_INSTANCE_ID_KEY = 'firebase_screen_id';
|
|
21
|
+
const FIREBASE_SCREEN_NAME_KEY = 'firebase_screen';
|
|
22
|
+
const OUTLET_KEY = 'outlet';
|
|
23
|
+
const PAGE_PATH_KEY = 'page_path';
|
|
24
|
+
const PAGE_TITLE_KEY = 'page_title';
|
|
25
|
+
const SCREEN_CLASS_KEY = 'screen_class';
|
|
26
|
+
const SCREEN_NAME_KEY = 'screen_name';
|
|
27
|
+
const SCREEN_VIEW_EVENT = 'screen_view';
|
|
28
|
+
const EVENT_ORIGIN_AUTO = 'auto';
|
|
29
|
+
const SCREEN_INSTANCE_DELIMITER = '#';
|
|
30
|
+
// this is an INT64 in iOS/Android but use INT32 cause javascript
|
|
31
|
+
let nextScreenInstanceID = Math.floor(Math.random() * (2 ** 32 - 1)) - 2 ** 31;
|
|
32
|
+
const knownScreenInstanceIDs = {};
|
|
33
|
+
const getScreenInstanceID = (params) => {
|
|
34
|
+
// unique the screen class against the outlet name
|
|
35
|
+
const screenInstanceKey = [
|
|
36
|
+
params[SCREEN_CLASS_KEY],
|
|
37
|
+
params[OUTLET_KEY]
|
|
38
|
+
].join(SCREEN_INSTANCE_DELIMITER);
|
|
39
|
+
if (knownScreenInstanceIDs.hasOwnProperty(screenInstanceKey)) {
|
|
40
|
+
return knownScreenInstanceIDs[screenInstanceKey];
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const ret = nextScreenInstanceID++;
|
|
44
|
+
knownScreenInstanceIDs[screenInstanceKey] = ret;
|
|
45
|
+
return ret;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
export const ɵscreenViewEvent = (router, title, componentFactoryResolver) => {
|
|
49
|
+
const activationEndEvents = router.events.pipe(filter(e => e instanceof ActivationEnd));
|
|
50
|
+
return activationEndEvents.pipe(switchMap(activationEnd => {
|
|
51
|
+
// router parseUrl is having trouble with outlets when they're empty
|
|
52
|
+
// e.g, /asdf/1(bob://sally:asdf), so put another slash in when empty
|
|
53
|
+
const urlTree = router.parseUrl(router.url.replace(/(?:\().+(?:\))/g, a => a.replace('://', ':///')));
|
|
54
|
+
const pagePath = urlTree.root.children[activationEnd.snapshot.outlet]?.toString() || '';
|
|
55
|
+
const actualSnapshot = router.routerState.root.children.map(it => it).find(it => it.outlet === activationEnd.snapshot.outlet);
|
|
56
|
+
if (!actualSnapshot) {
|
|
57
|
+
return of(null);
|
|
58
|
+
}
|
|
59
|
+
let actualDeep = actualSnapshot;
|
|
60
|
+
while (actualDeep.firstChild) {
|
|
61
|
+
actualDeep = actualDeep.firstChild;
|
|
62
|
+
}
|
|
63
|
+
const screenName = actualDeep.pathFromRoot.map(s => s.routeConfig?.path).filter(it => it).join('/') || '/';
|
|
64
|
+
const params = {
|
|
65
|
+
[SCREEN_NAME_KEY]: screenName,
|
|
66
|
+
[PAGE_PATH_KEY]: `/${pagePath}`,
|
|
67
|
+
[FIREBASE_EVENT_ORIGIN_KEY]: EVENT_ORIGIN_AUTO,
|
|
68
|
+
[FIREBASE_SCREEN_NAME_KEY]: screenName,
|
|
69
|
+
[OUTLET_KEY]: activationEnd.snapshot.outlet
|
|
70
|
+
};
|
|
71
|
+
if (title) {
|
|
72
|
+
params[PAGE_TITLE_KEY] = title.getTitle();
|
|
73
|
+
}
|
|
74
|
+
let component = actualSnapshot.component;
|
|
75
|
+
if (component) {
|
|
76
|
+
if (component === ɵEmptyOutletComponent) {
|
|
77
|
+
let deepSnapshot = activationEnd.snapshot;
|
|
78
|
+
// TODO when might there be mutple children, different outlets? explore
|
|
79
|
+
while (deepSnapshot.firstChild) {
|
|
80
|
+
deepSnapshot = deepSnapshot.firstChild;
|
|
81
|
+
}
|
|
82
|
+
component = deepSnapshot.component;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
component = activationEnd.snapshot.component;
|
|
87
|
+
}
|
|
88
|
+
if (typeof component === 'string') {
|
|
89
|
+
return of({ ...params, [SCREEN_CLASS_KEY]: component });
|
|
90
|
+
}
|
|
91
|
+
else if (component) {
|
|
92
|
+
const componentFactory = componentFactoryResolver.resolveComponentFactory(component);
|
|
93
|
+
return of({ ...params, [SCREEN_CLASS_KEY]: componentFactory.selector });
|
|
94
|
+
}
|
|
95
|
+
// lazy loads cause extra activations, ignore
|
|
96
|
+
return of(null);
|
|
97
|
+
}), filter(it => !!it), map(params => ({
|
|
98
|
+
[FIREBASE_SCREEN_CLASS_KEY]: params[SCREEN_CLASS_KEY],
|
|
99
|
+
[FIREBASE_SCREEN_INSTANCE_ID_KEY]: getScreenInstanceID(params),
|
|
100
|
+
...params
|
|
101
|
+
})), groupBy(it => it[OUTLET_KEY]), mergeMap(it => it.pipe(distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), startWith(undefined), pairwise(), map(([prior, current]) => prior ? {
|
|
102
|
+
[FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY],
|
|
103
|
+
[FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY],
|
|
104
|
+
[FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY],
|
|
105
|
+
...current
|
|
106
|
+
} : current))));
|
|
107
|
+
};
|
|
108
|
+
export class ScreenTrackingService {
|
|
109
|
+
disposable;
|
|
110
|
+
constructor(router, title, componentFactoryResolver, zone, userTrackingService, injector) {
|
|
111
|
+
registerVersion('angularfire', VERSION.full, 'screen-tracking');
|
|
112
|
+
// The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI
|
|
113
|
+
// may not be done when services are initialized. Guard the functionality by first ensuring
|
|
114
|
+
// that the (global) promise has resolved, then get Analytics from the injector.
|
|
115
|
+
isSupported().then(() => {
|
|
116
|
+
const analytics = injector.get(Analytics);
|
|
117
|
+
if (!router || !analytics) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
zone.runOutsideAngular(() => {
|
|
121
|
+
this.disposable = ɵscreenViewEvent(router, title, componentFactoryResolver).pipe(switchMap(async (params) => {
|
|
122
|
+
if (userTrackingService) {
|
|
123
|
+
await userTrackingService.initialized;
|
|
124
|
+
}
|
|
125
|
+
return logEvent(analytics, SCREEN_VIEW_EVENT, params);
|
|
126
|
+
})).subscribe();
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
ngOnDestroy() {
|
|
131
|
+
if (this.disposable) {
|
|
132
|
+
this.disposable.unsubscribe();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScreenTrackingService, deps: [{ token: i1.Router, optional: true }, { token: i2.Title, optional: true }, { token: i0.ComponentFactoryResolver }, { token: i0.NgZone }, { token: i3.UserTrackingService, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
136
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScreenTrackingService });
|
|
137
|
+
}
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScreenTrackingService, decorators: [{
|
|
139
|
+
type: Injectable
|
|
140
|
+
}], ctorParameters: function () { return [{ type: i1.Router, decorators: [{
|
|
141
|
+
type: Optional
|
|
142
|
+
}] }, { type: i2.Title, decorators: [{
|
|
143
|
+
type: Optional
|
|
144
|
+
}] }, { type: i0.ComponentFactoryResolver }, { type: i0.NgZone }, { type: i3.UserTrackingService, decorators: [{
|
|
145
|
+
type: Optional
|
|
146
|
+
}] }, { type: i0.Injector }]; } });
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXRyYWNraW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYW5hbHl0aWNzL3NjcmVlbi10cmFja2luZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFhLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLEVBQUUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQUU5RCxNQUFNLHlCQUF5QixHQUFHLHVCQUF1QixDQUFDO0FBQzFELE1BQU0sa0NBQWtDLEdBQUcseUJBQXlCLENBQUM7QUFDckUsTUFBTSx3Q0FBd0MsR0FBRyxzQkFBc0IsQ0FBQztBQUN4RSxNQUFNLGlDQUFpQyxHQUFHLDBCQUEwQixDQUFDO0FBQ3JFLE1BQU0seUJBQXlCLEdBQUcsdUJBQXVCLENBQUM7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O1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzt1R0FsQ1UscUJBQXFCOzJHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQU1OLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUdSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95LCBPcHRpb25hbCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9mLCBTdWJzY3JpcHRpb24sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGdyb3VwQnksIG1hcCwgbWVyZ2VNYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGl2YXRpb25FbmQsIFJvdXRlciwgybVFbXB0eU91dGxldENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgcmVnaXN0ZXJWZXJzaW9uIH0gZnJvbSAnZmlyZWJhc2UvYXBwJztcblxuaW1wb3J0IHsgQW5hbHl0aWNzIH0gZnJvbSAnLi9hbmFseXRpY3MnO1xuaW1wb3J0IHsgbG9nRXZlbnQsIGlzU3VwcG9ydGVkIH0gZnJvbSAnLi9maXJlYmFzZSc7XG5pbXBvcnQgeyBVc2VyVHJhY2tpbmdTZXJ2aWNlIH0gZnJvbSAnLi91c2VyLXRyYWNraW5nLnNlcnZpY2UnO1xuXG5jb25zdCBGSVJFQkFTRV9FVkVOVF9PUklHSU5fS0VZID0gJ2ZpcmViYXNlX2V2ZW50X29yaWdpbic7XG5jb25zdCBGSVJFQkFTRV9QUkVWSU9VU19TQ1JFRU5fQ0xBU1NfS0VZID0gJ2ZpcmViYXNlX3ByZXZpb3VzX2NsYXNzJztcbmNvbnN0IEZJUkVCQVNFX1BSRVZJT1VTX1NDUkVFTl9JTlNUQU5DRV9JRF9LRVkgPSAnZmlyZWJhc2VfcHJldmlvdXNfaWQnO1xuY29uc3QgRklSRUJBU0VfUFJFVklPVVNfU0NSRUVOX05BTUVfS0VZID0gJ2ZpcmViYXNlX3ByZXZpb3VzX3NjcmVlbic7XG5jb25zdCBGSVJFQkFTRV9TQ1JFRU5fQ0xBU1NfS0VZID0gJ2ZpcmViYXNlX3NjcmVlbl9jbGFzcyc7XG5jb25zdCBGSVJFQkFTRV9TQ1JFRU5fSU5TVEFOQ0VfSURfS0VZID0gJ2ZpcmViYXNlX3NjcmVlbl9pZCc7XG5jb25zdCBGSVJFQkFTRV9TQ1JFRU5fTkFNRV9LRVkgPSAnZmlyZWJhc2Vfc2NyZWVuJztcbmNvbnN0IE9VVExFVF9LRVkgPSAnb3V0bGV0JztcbmNvbnN0IFBBR0VfUEFUSF9LRVkgPSAncGFnZV9wYXRoJztcbmNvbnN0IFBBR0VfVElUTEVfS0VZID0gJ3BhZ2VfdGl0bGUnO1xuY29uc3QgU0NSRUVOX0NMQVNTX0tFWSA9ICdzY3JlZW5fY2xhc3MnO1xuY29uc3QgU0NSRUVOX05BTUVfS0VZID0gJ3NjcmVlbl9uYW1lJztcbmNvbnN0IFNDUkVFTl9WSUVXX0VWRU5UID0gJ3NjcmVlbl92aWV3JztcbmNvbnN0IEVWRU5UX09SSUdJTl9BVVRPID0gJ2F1dG8nO1xuY29uc3QgU0NSRUVOX0lOU1RBTkNFX0RFTElNSVRFUiA9ICcjJztcblxuLy8gdGhpcyBpcyBhbiBJTlQ2NCBpbiBpT1MvQW5kcm9pZCBidXQgdXNlIElOVDMyIGNhdXNlIGphdmFzY3JpcHRcbmxldCBuZXh0U2NyZWVuSW5zdGFuY2VJRCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICgyICoqIDMyIC0gMSkpIC0gMiAqKiAzMTtcblxuY29uc3Qga25vd25TY3JlZW5JbnN0YW5jZUlEczogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuXG5jb25zdCBnZXRTY3JlZW5JbnN0YW5jZUlEID0gKHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkgPT4ge1xuICAvLyB1bmlxdWUgdGhlIHNjcmVlbiBjbGFzcyBhZ2FpbnN0IHRoZSBvdXRsZXQgbmFtZVxuICBjb25zdCBzY3JlZW5JbnN0YW5jZUtleSA9IFtcbiAgICBwYXJhbXNbU0NSRUVOX0NMQVNTX0tFWV0sXG4gICAgcGFyYW1zW09VVExFVF9LRVldXG4gIF0uam9pbihTQ1JFRU5fSU5TVEFOQ0VfREVMSU1JVEVSKTtcbiAgaWYgKGtub3duU2NyZWVuSW5zdGFuY2VJRHMuaGFzT3duUHJvcGVydHkoc2NyZWVuSW5zdGFuY2VLZXkpKSB7XG4gICAgcmV0dXJuIGtub3duU2NyZWVuSW5zdGFuY2VJRHNbc2NyZWVuSW5zdGFuY2VLZXldO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHJldCA9IG5leHRTY3JlZW5JbnN0YW5jZUlEKys7XG4gICAga25vd25TY3JlZW5JbnN0YW5jZUlEc1tzY3JlZW5JbnN0YW5jZUtleV0gPSByZXQ7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IMm1c2NyZWVuVmlld0V2ZW50ID0gKFxuICByb3V0ZXI6IFJvdXRlcixcbiAgdGl0bGU6IFRpdGxlfG51bGwsXG4gIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuKTogT2JzZXJ2YWJsZTx7XG4gIFtTQ1JFRU5fTkFNRV9LRVldOiBzdHJpbmcsXG4gIFtQQUdFX1BBVEhfS0VZXTogc3RyaW5nLFxuICBbRklSRUJBU0VfRVZFTlRfT1JJR0lOX0tFWV06ICdhdXRvJyxcbiAgW0ZJUkVCQVNFX1NDUkVFTl9OQU1FX0tFWV06IHN0cmluZyxcbiAgW09VVExFVF9LRVldOiBzdHJpbmcsXG4gIFtQQUdFX1RJVExFX0tFWV0/OiBzdHJpbmcsXG4gIFtTQ1JFRU5fQ0xBU1NfS0VZXTogc3RyaW5nLFxuICBbRklSRUJBU0VfU0NSRUVOX0NMQVNTX0tFWV06IHN0cmluZyxcbiAgW0ZJUkVCQVNFX1NDUkVFTl9JTlNUQU5DRV9JRF9LRVldOiBudW1iZXIsXG4gIFtGSVJFQkFTRV9QUkVWSU9VU19TQ1JFRU5fQ0xBU1NfS0VZXTogc3RyaW5nLFxuICBbRklSRUJBU0VfUFJFVklPVVNfU0NSRUVOX05BTUVfS0VZXTogc3RyaW5nLFxuICBbRklSRUJBU0VfUFJFVklPVVNfU0NSRUVOX0lOU1RBTkNFX0lEX0tFWV06IG51bWJlcixcbn0+ID0+IHtcbiAgY29uc3QgYWN0aXZhdGlvbkVuZEV2ZW50cyA9IHJvdXRlci5ldmVudHMucGlwZShmaWx0ZXI8QWN0aXZhdGlvbkVuZD4oZSA9PiBlIGluc3RhbmNlb2YgQWN0aXZhdGlvbkVuZCkpO1xuICByZXR1cm4gYWN0aXZhdGlvbkVuZEV2ZW50cy5waXBlKFxuICAgIHN3aXRjaE1hcDxBY3RpdmF0aW9uRW5kLCBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIGFueT58bnVsbD4+KGFjdGl2YXRpb25FbmQgPT4ge1xuICAgICAgLy8gcm91dGVyIHBhcnNlVXJsIGlzIGhhdmluZyB0cm91YmxlIHdpdGggb3V0bGV0cyB3aGVuIHRoZXkncmUgZW1wdHlcbiAgICAgIC8vIGUuZywgL2FzZGYvMShib2I6Ly9zYWxseTphc2RmKSwgc28gcHV0IGFub3RoZXIgc2xhc2ggaW4gd2hlbiBlbXB0eVxuICAgICAgY29uc3QgdXJsVHJlZSA9IHJvdXRlci5wYXJzZVVybChyb3V0ZXIudXJsLnJlcGxhY2UoLyg/OlxcKCkuKyg/OlxcKSkvZywgYSA9PiBhLnJlcGxhY2UoJzovLycsICc6Ly8vJykpKTtcbiAgICAgIGNvbnN0IHBhZ2VQYXRoID0gdXJsVHJlZS5yb290LmNoaWxkcmVuW2FjdGl2YXRpb25FbmQuc25hcHNob3Qub3V0bGV0XT8udG9TdHJpbmcoKSB8fCAnJztcbiAgICAgIGNvbnN0IGFjdHVhbFNuYXBzaG90ID0gcm91dGVyLnJvdXRlclN0YXRlLnJvb3QuY2hpbGRyZW4ubWFwKGl0ID0+IGl0KS5maW5kKGl0ID0+IGl0Lm91dGxldCA9PT0gYWN0aXZhdGlvbkVuZC5zbmFwc2hvdC5vdXRsZXQpO1xuXG4gICAgICBpZiAoIWFjdHVhbFNuYXBzaG90KSB7XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGFjdHVhbERlZXAgPSBhY3R1YWxTbmFwc2hvdDtcbiAgICAgIHdoaWxlIChhY3R1YWxEZWVwLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgYWN0dWFsRGVlcCA9IGFjdHVhbERlZXAuZmlyc3RDaGlsZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcmVlbk5hbWUgPSBhY3R1YWxEZWVwLnBhdGhGcm9tUm9vdC5tYXAocyA9PiBzLnJvdXRlQ29uZmlnPy5wYXRoKS5maWx0ZXIoaXQgPT4gaXQpLmpvaW4oJy8nKSB8fCAnLyc7XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgW1NDUkVFTl9OQU1FX0tFWV06IHNjcmVlbk5hbWUsXG4gICAgICAgIFtQQUdFX1BBVEhfS0VZXTogYC8ke3BhZ2VQYXRofWAsXG4gICAgICAgIFtGSVJFQkFTRV9FVkVOVF9PUklHSU5fS0VZXTogRVZFTlRfT1JJR0lOX0FVVE8sXG4gICAgICAgIFtGSVJFQkFTRV9TQ1JFRU5fTkFNRV9LRVldOiBzY3JlZW5OYW1lLFxuICAgICAgICBbT1VUTEVUX0tFWV06IGFjdGl2YXRpb25FbmQuc25hcHNob3Qub3V0bGV0XG4gICAgICB9O1xuICAgICAgaWYgKHRpdGxlKSB7XG4gICAgICAgIHBhcmFtc1tQQUdFX1RJVExFX0tFWV0gPSB0aXRsZS5nZXRUaXRsZSgpO1xuICAgICAgfVxuXG4gICAgICBsZXQgY29tcG9uZW50ID0gYWN0dWFsU25hcHNob3QuY29tcG9uZW50O1xuICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICBpZiAoY29tcG9uZW50ID09PSDJtUVtcHR5T3V0bGV0Q29tcG9uZW50KSB7XG4gICAgICAgICAgbGV0IGRlZXBTbmFwc2hvdCA9IGFjdGl2YXRpb25FbmQuc25hcHNob3Q7XG4gICAgICAgICAgLy8gVE9ETyB3aGVuIG1pZ2h0IHRoZXJlIGJlIG11dHBsZSBjaGlsZHJlbiwgZGlmZmVyZW50IG91dGxldHM/IGV4cGxvcmVcbiAgICAgICAgICB3aGlsZSAoZGVlcFNuYXBzaG90LmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIGRlZXBTbmFwc2hvdCA9IGRlZXBTbmFwc2hvdC5maXJzdENoaWxkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb21wb25lbnQgPSBkZWVwU25hcHNob3QuY29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb21wb25lbnQgPSBhY3RpdmF0aW9uRW5kLnNuYXBzaG90LmNvbXBvbmVudDtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBvZih7IC4uLnBhcmFtcywgW1NDUkVFTl9DTEFTU19LRVldOiBjb21wb25lbnQgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCk7XG4gICAgICAgIHJldHVybiBvZih7IC4uLnBhcmFtcywgW1NDUkVFTl9DTEFTU19LRVldOiBjb21wb25lbnRGYWN0b3J5LnNlbGVjdG9yIH0pO1xuICAgICAgfVxuICAgICAgLy8gbGF6eSBsb2FkcyBjYXVzZSBleHRyYSBhY3RpdmF0aW9ucywgaWdub3JlXG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfSksXG4gICAgZmlsdGVyKGl0ID0+ICEhaXQpLFxuICAgIG1hcChwYXJhbXMgPT4gKHtcbiAgICAgIFtGSVJFQkFTRV9TQ1JFRU5fQ0xBU1NfS0VZXTogcGFyYW1zW1NDUkVFTl9DTEFTU19LRVldLFxuICAgICAgW0ZJUkVCQVNFX1NDUkVFTl9JTlNUQU5DRV9JRF9LRVldOiBnZXRTY3JlZW5JbnN0YW5jZUlEKHBhcmFtcyksXG4gICAgICAuLi5wYXJhbXNcbiAgICB9KSksXG4gICAgZ3JvdXBCeShpdCA9PiBpdFtPVVRMRVRfS0VZXSksXG4gICAgbWVyZ2VNYXAoaXQgPT4gaXQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpLFxuICAgICAgc3RhcnRXaXRoPGFueSwgYW55Pih1bmRlZmluZWQpLFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIG1hcCgoW3ByaW9yLCBjdXJyZW50XSkgPT5cbiAgICAgICAgcHJpb3IgPyB7XG4gICAgICAgICAgW0ZJUkVCQVNFX1BSRVZJT1VTX1NDUkVFTl9DTEFTU19LRVldOiBwcmlvcltTQ1JFRU5fQ0xBU1NfS0VZXSxcbiAgICAgICAgICBbRklSRUJBU0VfUFJFVklPVVNfU0NSRUVOX05BTUVfS0VZXTogcHJpb3JbU0NSRUVOX05BTUVfS0VZXSxcbiAgICAgICAgICBbRklSRUJBU0VfUFJFVklPVVNfU0NSRUVOX0lOU1RBTkNFX0lEX0tFWV06IHByaW9yW0ZJUkVCQVNFX1NDUkVFTl9JTlNUQU5DRV9JRF9LRVldLFxuICAgICAgICAgIC4uLmN1cnJlbnRcbiAgICAgICAgfSA6IGN1cnJlbnRcbiAgICAgICksXG4gICAgKSlcbiAgKTtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY3JlZW5UcmFja2luZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgZGlzcG9zYWJsZTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHJvdXRlcjogUm91dGVyLFxuICAgIEBPcHRpb25hbCgpIHRpdGxlOiBUaXRsZSxcbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgdXNlclRyYWNraW5nU2VydmljZTogVXNlclRyYWNraW5nU2VydmljZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIHJlZ2lzdGVyVmVyc2lvbignYW5ndWxhcmZpcmUnLCBWRVJTSU9OLmZ1bGwsICdzY3JlZW4tdHJhY2tpbmcnKTtcbiAgICAvLyBUaGUgQVBQX0lOSVRJQUxJWkVSIHRoYXQgaXMgbWFraW5nIGlzU3VwcG9ydGVkKCkgc3luYyBmb3IgdGhlIHNha2Ugb2YgY29udmVuaWVudCBESVxuICAgIC8vIG1heSBub3QgYmUgZG9uZSB3aGVuIHNlcnZpY2VzIGFyZSBpbml0aWFsaXplZC4gR3VhcmQgdGhlIGZ1bmN0aW9uYWxpdHkgYnkgZmlyc3QgZW5zdXJpbmdcbiAgICAvLyB0aGF0IHRoZSAoZ2xvYmFsKSBwcm9taXNlIGhhcyByZXNvbHZlZCwgdGhlbiBnZXQgQW5hbHl0aWNzIGZyb20gdGhlIGluamVjdG9yLlxuICAgIGlzU3VwcG9ydGVkKCkudGhlbigoKSA9PiB7XG4gICAgICBjb25zdCBhbmFseXRpY3MgPSBpbmplY3Rvci5nZXQoQW5hbHl0aWNzKTtcbiAgICAgIGlmICghcm91dGVyIHx8ICFhbmFseXRpY3MpIHsgcmV0dXJuOyB9XG4gICAgICB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNwb3NhYmxlID0gybVzY3JlZW5WaWV3RXZlbnQocm91dGVyLCB0aXRsZSwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcChhc3luYyBwYXJhbXMgPT4ge1xuICAgICAgICAgICAgaWYgKHVzZXJUcmFja2luZ1NlcnZpY2UpIHsgYXdhaXQgdXNlclRyYWNraW5nU2VydmljZS5pbml0aWFsaXplZDsgfVxuICAgICAgICAgICAgcmV0dXJuIGxvZ0V2ZW50KGFuYWx5dGljcywgU0NSRUVOX1ZJRVdfRVZFTlQsIHBhcmFtcyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuZGlzcG9zYWJsZSkge1xuICAgICAgdGhpcy5kaXNwb3NhYmxlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|