binnacle 0.4.8
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.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +138 -0
- data/LICENSE.txt +22 -0
- data/README.asc +264 -0
- data/Rakefile +48 -0
- data/bin/binnacle +5 -0
- data/binnacle.gemspec +49 -0
- data/lib/binnacle.rb +112 -0
- data/lib/binnacle/client.rb +115 -0
- data/lib/binnacle/commands/commands.rb +20 -0
- data/lib/binnacle/commands/help.rb +21 -0
- data/lib/binnacle/commands/tail.rb +187 -0
- data/lib/binnacle/configuration.rb +278 -0
- data/lib/binnacle/connection.rb +66 -0
- data/lib/binnacle/errors.rb +4 -0
- data/lib/binnacle/http_logging/adapters/ethon.rb +44 -0
- data/lib/binnacle/http_logging/adapters/excon.rb +62 -0
- data/lib/binnacle/http_logging/adapters/http.rb +63 -0
- data/lib/binnacle/http_logging/adapters/httpclient.rb +93 -0
- data/lib/binnacle/http_logging/adapters/net_http.rb +54 -0
- data/lib/binnacle/http_logging/adapters/patron.rb +24 -0
- data/lib/binnacle/http_logging/adapters/typhoeus.rb +20 -0
- data/lib/binnacle/http_logging/http_logger.rb +83 -0
- data/lib/binnacle/logging/formatter.rb +62 -0
- data/lib/binnacle/logging/logging.rb +36 -0
- data/lib/binnacle/logging/request_log_subscriber.rb +120 -0
- data/lib/binnacle/resource.rb +54 -0
- data/lib/binnacle/resources/event.rb +100 -0
- data/lib/binnacle/trap/backtrace.rb +130 -0
- data/lib/binnacle/trap/exception_event.rb +176 -0
- data/lib/binnacle/trap/middleware.rb +45 -0
- data/lib/binnacle/trap/railtie.rb +28 -0
- data/lib/binnacle/version.rb +3 -0
- data/lib/generators/binnacle/binnacle_generator.rb +78 -0
- data/lib/generators/binnacle/templates/firebase-messaging-sw.js.erb +35 -0
- data/spec/adapters/ethon_adapter.rb +19 -0
- data/spec/adapters/excon_adapter.rb +10 -0
- data/spec/adapters/faraday_adapter.rb +46 -0
- data/spec/adapters/http_adapter.rb +14 -0
- data/spec/adapters/http_base_adapter.rb +37 -0
- data/spec/adapters/httparty_adapter.rb +10 -0
- data/spec/adapters/httpclient_adapter.rb +21 -0
- data/spec/adapters/net_http_adapter.rb +14 -0
- data/spec/adapters/open_uri_adapter.rb +17 -0
- data/spec/adapters/patron_adapter.rb +29 -0
- data/spec/adapters/typhoeus_adapter.rb +25 -0
- data/spec/backtrace_spec.rb +197 -0
- data/spec/binnacle_spec.rb +33 -0
- data/spec/client_spec.rb +128 -0
- data/spec/commands_spec.rb +91 -0
- data/spec/configuration_spec.rb +139 -0
- data/spec/connection_spec.rb +34 -0
- data/spec/exception_event_spec.rb +72 -0
- data/spec/http_logger_spec.rb +77 -0
- data/spec/logger_spec.rb +60 -0
- data/spec/spec_helper.rb +117 -0
- data/spec/support/index.html +8 -0
- data/spec/support/index.html.gz +0 -0
- data/spec/support/test.bin +0 -0
- data/spec/support/test_server.rb +31 -0
- data/spec/support/utf8-invalid.html +0 -0
- data/spec/support/utf8.html +8 -0
- data/spec/vcr/binnacle/configure_can_be_configured_via_a_hash_of_options.yml +42 -0
- data/spec/vcr/binnacle/configure_creates_a_module_level_instance_of_a_binnacle_client.yml +42 -0
- data/spec/vcr/binnacle_client/events_invokes_the_events_api.yml +124 -0
- data/spec/vcr/binnacle_client/events_returns_a_collection_of_event_objects.yml +124 -0
- data/spec/vcr/binnacle_client/recents_invokes_the_events_api_recents.yml +83 -0
- data/spec/vcr/binnacle_client/recents_returns_a_collection_of_event_objects.yml +83 -0
- data/spec/vcr/binnacle_client/report_exception_invokes_the_events_api_signal.yml +121 -0
- data/spec/vcr/binnacle_client/signal_asynch_invokes_the_events_api_signal.yml +74 -0
- data/spec/vcr/binnacle_client/signal_invokes_the_events_api_signal.yml +74 -0
- data/spec/vcr/binnacle_client_ready_/returns_true_if_a_connection_has_been_successfully_established.yml +42 -0
- data/spec/vcr/binnacle_command/tail_command_with_n_flag_returns_recent_events.yml +81 -0
- data/spec/vcr/binnacle_connection/initialize_fails_with_incorrect_credentials.yml +40 -0
- data/spec/vcr/binnacle_connection/initialize_retrieves_available_endpoints_upon_successful_connection.yml +42 -0
- data/spec/vcr/binnacle_http_logger/_htt_party_adapter_should_log__ge_t_requests.yml +122 -0
- data/spec/vcr/binnacle_http_logger/_http_adapter_should_log__ge_t_requests.yml +165 -0
- data/spec/vcr/binnacle_http_logger/_http_client_adapter_should_log__ge_t_requests.yml +274 -0
- data/spec/vcr/binnacle_http_logger/ethon_adapter_should_log__ge_t_requests.yml +87 -0
- data/spec/vcr/binnacle_http_logger/excon_adapter_should_log__ge_t_requests.yml +204 -0
- data/spec/vcr/binnacle_http_logger/faraday_adapter_should_log__ge_t_requests.yml +200 -0
- data/spec/vcr/binnacle_http_logger/net_http_adapter_should_log__ge_t_requests.yml +827 -0
- data/spec/vcr/binnacle_http_logger/open_uri_adapter_should_log__ge_t_requests.yml +751 -0
- data/spec/vcr/binnacle_http_logger/patron_adapter_should_log__ge_t_requests.yml +124 -0
- data/spec/vcr/binnacle_http_logger/typhoeus_adapter_should_log__ge_t_requests.yml +124 -0
- data/spec/vcr/binnacle_logging/logging_allows_passing_other_parameters_using_a_hash.yml +119 -0
- data/spec/vcr/binnacle_logging/logging_invokes_the_events_api_signal.yml +75 -0
- data/spec/vcr/binnacle_logging/logging_respects_the_logger_severity.yml +81 -0
- data/vendor/assets/javascripts/atmosphere/atmosphere.js +3487 -0
- data/vendor/assets/javascripts/base64/base64.js +61 -0
- data/vendor/assets/javascripts/binnacle.js +5 -0
- data/vendor/assets/javascripts/binnacle/binnacle.js +9090 -0
- data/vendor/assets/javascripts/firebase/firebase-app-externs.js +261 -0
- data/vendor/assets/javascripts/firebase/firebase-app.js +35 -0
- data/vendor/assets/javascripts/firebase/firebase-auth-externs.js +1300 -0
- data/vendor/assets/javascripts/firebase/firebase-auth.js +241 -0
- data/vendor/assets/javascripts/firebase/firebase-database-externs.js +1700 -0
- data/vendor/assets/javascripts/firebase/firebase-database.js +260 -0
- data/vendor/assets/javascripts/firebase/firebase-messaging-externs.js +164 -0
- data/vendor/assets/javascripts/firebase/firebase-messaging.js +35 -0
- data/vendor/assets/javascripts/firebase/firebase-storage-externs.js +663 -0
- data/vendor/assets/javascripts/firebase/firebase-storage.js +52 -0
- data/vendor/assets/javascripts/firebase/firebase.js +611 -0
- data/vendor/assets/javascripts/moment/locale/af.js +73 -0
- data/vendor/assets/javascripts/moment/locale/ar-dz.js +59 -0
- data/vendor/assets/javascripts/moment/locale/ar-kw.js +59 -0
- data/vendor/assets/javascripts/moment/locale/ar-ly.js +126 -0
- data/vendor/assets/javascripts/moment/locale/ar-ma.js +60 -0
- data/vendor/assets/javascripts/moment/locale/ar-sa.js +105 -0
- data/vendor/assets/javascripts/moment/locale/ar-tn.js +59 -0
- data/vendor/assets/javascripts/moment/locale/ar.js +142 -0
- data/vendor/assets/javascripts/moment/locale/az.js +105 -0
- data/vendor/assets/javascripts/moment/locale/be.js +134 -0
- data/vendor/assets/javascripts/moment/locale/bg.js +90 -0
- data/vendor/assets/javascripts/moment/locale/bn.js +119 -0
- data/vendor/assets/javascripts/moment/locale/bo.js +119 -0
- data/vendor/assets/javascripts/moment/locale/br.js +108 -0
- data/vendor/assets/javascripts/moment/locale/bs.js +143 -0
- data/vendor/assets/javascripts/moment/locale/ca.js +88 -0
- data/vendor/assets/javascripts/moment/locale/cs.js +172 -0
- data/vendor/assets/javascripts/moment/locale/cv.js +63 -0
- data/vendor/assets/javascripts/moment/locale/cy.js +81 -0
- data/vendor/assets/javascripts/moment/locale/da.js +60 -0
- data/vendor/assets/javascripts/moment/locale/de-at.js +79 -0
- data/vendor/assets/javascripts/moment/locale/de-ch.js +78 -0
- data/vendor/assets/javascripts/moment/locale/de.js +78 -0
- data/vendor/assets/javascripts/moment/locale/dv.js +100 -0
- data/vendor/assets/javascripts/moment/locale/el.js +100 -0
- data/vendor/assets/javascripts/moment/locale/en-au.js +67 -0
- data/vendor/assets/javascripts/moment/locale/en-ca.js +63 -0
- data/vendor/assets/javascripts/moment/locale/en-gb.js +67 -0
- data/vendor/assets/javascripts/moment/locale/en-ie.js +67 -0
- data/vendor/assets/javascripts/moment/locale/en-nz.js +67 -0
- data/vendor/assets/javascripts/moment/locale/eo.js +73 -0
- data/vendor/assets/javascripts/moment/locale/es-do.js +82 -0
- data/vendor/assets/javascripts/moment/locale/es.js +83 -0
- data/vendor/assets/javascripts/moment/locale/et.js +80 -0
- data/vendor/assets/javascripts/moment/locale/eu.js +66 -0
- data/vendor/assets/javascripts/moment/locale/fa.js +107 -0
- data/vendor/assets/javascripts/moment/locale/fi.js +107 -0
- data/vendor/assets/javascripts/moment/locale/fo.js +60 -0
- data/vendor/assets/javascripts/moment/locale/fr-ca.js +74 -0
- data/vendor/assets/javascripts/moment/locale/fr-ch.js +78 -0
- data/vendor/assets/javascripts/moment/locale/fr.js +83 -0
- data/vendor/assets/javascripts/moment/locale/fy.js +75 -0
- data/vendor/assets/javascripts/moment/locale/gd.js +76 -0
- data/vendor/assets/javascripts/moment/locale/gl.js +77 -0
- data/vendor/assets/javascripts/moment/locale/gom-latn.js +122 -0
- data/vendor/assets/javascripts/moment/locale/he.js +99 -0
- data/vendor/assets/javascripts/moment/locale/hi.js +124 -0
- data/vendor/assets/javascripts/moment/locale/hr.js +145 -0
- data/vendor/assets/javascripts/moment/locale/hu.js +109 -0
- data/vendor/assets/javascripts/moment/locale/hy-am.js +95 -0
- data/vendor/assets/javascripts/moment/locale/id.js +83 -0
- data/vendor/assets/javascripts/moment/locale/is.js +127 -0
- data/vendor/assets/javascripts/moment/locale/it.js +70 -0
- data/vendor/assets/javascripts/moment/locale/ja.js +80 -0
- data/vendor/assets/javascripts/moment/locale/jv.js +83 -0
- data/vendor/assets/javascripts/moment/locale/ka.js +89 -0
- data/vendor/assets/javascripts/moment/locale/kk.js +87 -0
- data/vendor/assets/javascripts/moment/locale/km.js +58 -0
- data/vendor/assets/javascripts/moment/locale/kn.js +126 -0
- data/vendor/assets/javascripts/moment/locale/ko.js +69 -0
- data/vendor/assets/javascripts/moment/locale/ky.js +88 -0
- data/vendor/assets/javascripts/moment/locale/lb.js +137 -0
- data/vendor/assets/javascripts/moment/locale/lo.js +70 -0
- data/vendor/assets/javascripts/moment/locale/lt.js +117 -0
- data/vendor/assets/javascripts/moment/locale/lv.js +97 -0
- data/vendor/assets/javascripts/moment/locale/me.js +111 -0
- data/vendor/assets/javascripts/moment/locale/mi.js +64 -0
- data/vendor/assets/javascripts/moment/locale/mk.js +90 -0
- data/vendor/assets/javascripts/moment/locale/ml.js +81 -0
- data/vendor/assets/javascripts/moment/locale/mr.js +159 -0
- data/vendor/assets/javascripts/moment/locale/ms-my.js +83 -0
- data/vendor/assets/javascripts/moment/locale/ms.js +82 -0
- data/vendor/assets/javascripts/moment/locale/my.js +96 -0
- data/vendor/assets/javascripts/moment/locale/nb.js +63 -0
- data/vendor/assets/javascripts/moment/locale/ne.js +123 -0
- data/vendor/assets/javascripts/moment/locale/nl-be.js +88 -0
- data/vendor/assets/javascripts/moment/locale/nl.js +88 -0
- data/vendor/assets/javascripts/moment/locale/nn.js +60 -0
- data/vendor/assets/javascripts/moment/locale/pa-in.js +124 -0
- data/vendor/assets/javascripts/moment/locale/pl.js +107 -0
- data/vendor/assets/javascripts/moment/locale/pt-br.js +61 -0
- data/vendor/assets/javascripts/moment/locale/pt.js +65 -0
- data/vendor/assets/javascripts/moment/locale/ro.js +75 -0
- data/vendor/assets/javascripts/moment/locale/ru.js +183 -0
- data/vendor/assets/javascripts/moment/locale/sd.js +98 -0
- data/vendor/assets/javascripts/moment/locale/se.js +61 -0
- data/vendor/assets/javascripts/moment/locale/si.js +71 -0
- data/vendor/assets/javascripts/moment/locale/sk.js +150 -0
- data/vendor/assets/javascripts/moment/locale/sl.js +162 -0
- data/vendor/assets/javascripts/moment/locale/sq.js +70 -0
- data/vendor/assets/javascripts/moment/locale/sr-cyrl.js +110 -0
- data/vendor/assets/javascripts/moment/locale/sr.js +110 -0
- data/vendor/assets/javascripts/moment/locale/ss.js +89 -0
- data/vendor/assets/javascripts/moment/locale/sv.js +69 -0
- data/vendor/assets/javascripts/moment/locale/sw.js +59 -0
- data/vendor/assets/javascripts/moment/locale/ta.js +130 -0
- data/vendor/assets/javascripts/moment/locale/te.js +89 -0
- data/vendor/assets/javascripts/moment/locale/tet.js +68 -0
- data/vendor/assets/javascripts/moment/locale/th.js +67 -0
- data/vendor/assets/javascripts/moment/locale/tl-ph.js +62 -0
- data/vendor/assets/javascripts/moment/locale/tlh.js +120 -0
- data/vendor/assets/javascripts/moment/locale/tr.js +90 -0
- data/vendor/assets/javascripts/moment/locale/tzl.js +91 -0
- data/vendor/assets/javascripts/moment/locale/tzm-latn.js +58 -0
- data/vendor/assets/javascripts/moment/locale/tzm.js +58 -0
- data/vendor/assets/javascripts/moment/locale/uk.js +151 -0
- data/vendor/assets/javascripts/moment/locale/ur.js +99 -0
- data/vendor/assets/javascripts/moment/locale/uz-latn.js +58 -0
- data/vendor/assets/javascripts/moment/locale/uz.js +58 -0
- data/vendor/assets/javascripts/moment/locale/vi.js +79 -0
- data/vendor/assets/javascripts/moment/locale/x-pseudo.js +68 -0
- data/vendor/assets/javascripts/moment/locale/yo.js +60 -0
- data/vendor/assets/javascripts/moment/locale/zh-cn.js +111 -0
- data/vendor/assets/javascripts/moment/locale/zh-hk.js +105 -0
- data/vendor/assets/javascripts/moment/locale/zh-tw.js +104 -0
- data/vendor/assets/javascripts/moment/min/locales.js +9252 -0
- data/vendor/assets/javascripts/moment/min/moment-with-locales.js +13700 -0
- data/vendor/assets/javascripts/moment/min/moment.min.js +7 -0
- data/vendor/assets/javascripts/moment/min/tests.js +78265 -0
- data/vendor/assets/javascripts/moment/moment.js +4463 -0
- data/vendor/assets/javascripts/moment/src/lib/create/check-overflow.js +34 -0
- data/vendor/assets/javascripts/moment/src/lib/create/date-from-array.js +21 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-anything.js +110 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-array.js +140 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-object.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-string-and-array.js +50 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-string-and-format.js +113 -0
- data/vendor/assets/javascripts/moment/src/lib/create/from-string.js +202 -0
- data/vendor/assets/javascripts/moment/src/lib/create/local.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/create/parsing-flags.js +26 -0
- data/vendor/assets/javascripts/moment/src/lib/create/utc.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/create/valid.js +49 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/abs.js +18 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/add-subtract.js +21 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/as.js +61 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/bubble.js +61 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/constructor.js +44 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/create.js +122 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/duration.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/get.js +25 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/humanize.js +85 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/iso-string.js +56 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/prototype.js +50 -0
- data/vendor/assets/javascripts/moment/src/lib/duration/valid.js +35 -0
- data/vendor/assets/javascripts/moment/src/lib/format/format.js +92 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/base-config.js +44 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/calendar.js +15 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/constructor.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/en.js +15 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/formats.js +23 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/invalid.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/lists.js +93 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/locale.js +39 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/locales.js +186 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/ordinal.js +7 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/pre-post-format.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/prototype.js +69 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/relative.js +30 -0
- data/vendor/assets/javascripts/moment/src/lib/locale/set.js +49 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/add-subtract.js +55 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/calendar.js +26 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/clone.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/compare.js +59 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/constructor.js +77 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/creation-data.js +9 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/diff.js +62 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/format.js +57 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/from.js +17 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/get-set.js +55 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/locale.js +34 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/min-max.js +63 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/moment.js +28 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/now.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/prototype.js +150 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/start-end-of.js +59 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/to-type.js +34 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/to.js +17 -0
- data/vendor/assets/javascripts/moment/src/lib/moment/valid.js +15 -0
- data/vendor/assets/javascripts/moment/src/lib/parse/regex.js +54 -0
- data/vendor/assets/javascripts/moment/src/lib/parse/token.js +33 -0
- data/vendor/assets/javascripts/moment/src/lib/units/aliases.js +30 -0
- data/vendor/assets/javascripts/moment/src/lib/units/constants.js +9 -0
- data/vendor/assets/javascripts/moment/src/lib/units/day-of-month.js +39 -0
- data/vendor/assets/javascripts/moment/src/lib/units/day-of-week.js +364 -0
- data/vendor/assets/javascripts/moment/src/lib/units/day-of-year.js +36 -0
- data/vendor/assets/javascripts/moment/src/lib/units/hour.js +144 -0
- data/vendor/assets/javascripts/moment/src/lib/units/millisecond.js +69 -0
- data/vendor/assets/javascripts/moment/src/lib/units/minute.js +29 -0
- data/vendor/assets/javascripts/moment/src/lib/units/month.js +283 -0
- data/vendor/assets/javascripts/moment/src/lib/units/offset.js +235 -0
- data/vendor/assets/javascripts/moment/src/lib/units/priorities.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/units/quarter.js +32 -0
- data/vendor/assets/javascripts/moment/src/lib/units/second.js +29 -0
- data/vendor/assets/javascripts/moment/src/lib/units/timestamp.js +20 -0
- data/vendor/assets/javascripts/moment/src/lib/units/timezone.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/units/units.js +20 -0
- data/vendor/assets/javascripts/moment/src/lib/units/week-calendar-utils.js +65 -0
- data/vendor/assets/javascripts/moment/src/lib/units/week-year.js +107 -0
- data/vendor/assets/javascripts/moment/src/lib/units/week.js +67 -0
- data/vendor/assets/javascripts/moment/src/lib/units/year.js +75 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/abs-ceil.js +7 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/abs-floor.js +8 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/abs-round.js +7 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/compare-arrays.js +16 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/defaults.js +10 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/deprecate.js +55 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/extend.js +19 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/has-own-prop.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/hooks.js +13 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/index-of.js +18 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-array.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-date.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-function.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-number.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-object-empty.js +8 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-object.js +5 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/is-undefined.js +3 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/keys.js +19 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/map.js +7 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/some.js +19 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/to-int.js +12 -0
- data/vendor/assets/javascripts/moment/src/lib/utils/zero-fill.js +7 -0
- data/vendor/assets/javascripts/moment/src/locale/af.js +63 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-dz.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-kw.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-ly.js +112 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-ma.js +51 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-sa.js +95 -0
- data/vendor/assets/javascripts/moment/src/locale/ar-tn.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/ar.js +128 -0
- data/vendor/assets/javascripts/moment/src/locale/az.js +96 -0
- data/vendor/assets/javascripts/moment/src/locale/be.js +125 -0
- data/vendor/assets/javascripts/moment/src/locale/bg.js +81 -0
- data/vendor/assets/javascripts/moment/src/locale/bn.js +109 -0
- data/vendor/assets/javascripts/moment/src/locale/bo.js +110 -0
- data/vendor/assets/javascripts/moment/src/locale/br.js +99 -0
- data/vendor/assets/javascripts/moment/src/locale/bs.js +133 -0
- data/vendor/assets/javascripts/moment/src/locale/ca.js +79 -0
- data/vendor/assets/javascripts/moment/src/locale/cs.js +163 -0
- data/vendor/assets/javascripts/moment/src/locale/cv.js +53 -0
- data/vendor/assets/javascripts/moment/src/locale/cy.js +72 -0
- data/vendor/assets/javascripts/moment/src/locale/da.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/de-at.js +69 -0
- data/vendor/assets/javascripts/moment/src/locale/de-ch.js +68 -0
- data/vendor/assets/javascripts/moment/src/locale/de.js +68 -0
- data/vendor/assets/javascripts/moment/src/locale/dv.js +89 -0
- data/vendor/assets/javascripts/moment/src/locale/el.js +88 -0
- data/vendor/assets/javascripts/moment/src/locale/en-au.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/en-ca.js +53 -0
- data/vendor/assets/javascripts/moment/src/locale/en-gb.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/en-ie.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/en-nz.js +57 -0
- data/vendor/assets/javascripts/moment/src/locale/eo.js +64 -0
- data/vendor/assets/javascripts/moment/src/locale/es-do.js +73 -0
- data/vendor/assets/javascripts/moment/src/locale/es.js +74 -0
- data/vendor/assets/javascripts/moment/src/locale/et.js +71 -0
- data/vendor/assets/javascripts/moment/src/locale/eu.js +57 -0
- data/vendor/assets/javascripts/moment/src/locale/fa.js +97 -0
- data/vendor/assets/javascripts/moment/src/locale/fi.js +98 -0
- data/vendor/assets/javascripts/moment/src/locale/fo.js +51 -0
- data/vendor/assets/javascripts/moment/src/locale/fr-ca.js +65 -0
- data/vendor/assets/javascripts/moment/src/locale/fr-ch.js +69 -0
- data/vendor/assets/javascripts/moment/src/locale/fr.js +74 -0
- data/vendor/assets/javascripts/moment/src/locale/fy.js +66 -0
- data/vendor/assets/javascripts/moment/src/locale/gd.js +67 -0
- data/vendor/assets/javascripts/moment/src/locale/gl.js +68 -0
- data/vendor/assets/javascripts/moment/src/locale/gom-latn.js +112 -0
- data/vendor/assets/javascripts/moment/src/locale/he.js +90 -0
- data/vendor/assets/javascripts/moment/src/locale/hi.js +115 -0
- data/vendor/assets/javascripts/moment/src/locale/hr.js +135 -0
- data/vendor/assets/javascripts/moment/src/locale/hu.js +100 -0
- data/vendor/assets/javascripts/moment/src/locale/hy-am.js +86 -0
- data/vendor/assets/javascripts/moment/src/locale/id.js +74 -0
- data/vendor/assets/javascripts/moment/src/locale/is.js +118 -0
- data/vendor/assets/javascripts/moment/src/locale/it.js +61 -0
- data/vendor/assets/javascripts/moment/src/locale/ja.js +71 -0
- data/vendor/assets/javascripts/moment/src/locale/jv.js +73 -0
- data/vendor/assets/javascripts/moment/src/locale/ka.js +80 -0
- data/vendor/assets/javascripts/moment/src/locale/kk.js +77 -0
- data/vendor/assets/javascripts/moment/src/locale/km.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/kn.js +116 -0
- data/vendor/assets/javascripts/moment/src/locale/ko.js +60 -0
- data/vendor/assets/javascripts/moment/src/locale/ky.js +78 -0
- data/vendor/assets/javascripts/moment/src/locale/lb.js +128 -0
- data/vendor/assets/javascripts/moment/src/locale/lo.js +61 -0
- data/vendor/assets/javascripts/moment/src/locale/lt.js +108 -0
- data/vendor/assets/javascripts/moment/src/locale/lv.js +88 -0
- data/vendor/assets/javascripts/moment/src/locale/me.js +101 -0
- data/vendor/assets/javascripts/moment/src/locale/mi.js +54 -0
- data/vendor/assets/javascripts/moment/src/locale/mk.js +81 -0
- data/vendor/assets/javascripts/moment/src/locale/ml.js +72 -0
- data/vendor/assets/javascripts/moment/src/locale/mr.js +150 -0
- data/vendor/assets/javascripts/moment/src/locale/ms-my.js +74 -0
- data/vendor/assets/javascripts/moment/src/locale/ms.js +73 -0
- data/vendor/assets/javascripts/moment/src/locale/my.js +86 -0
- data/vendor/assets/javascripts/moment/src/locale/nb.js +54 -0
- data/vendor/assets/javascripts/moment/src/locale/ne.js +114 -0
- data/vendor/assets/javascripts/moment/src/locale/nl-be.js +79 -0
- data/vendor/assets/javascripts/moment/src/locale/nl.js +79 -0
- data/vendor/assets/javascripts/moment/src/locale/nn.js +51 -0
- data/vendor/assets/javascripts/moment/src/locale/pa-in.js +115 -0
- data/vendor/assets/javascripts/moment/src/locale/pl.js +97 -0
- data/vendor/assets/javascripts/moment/src/locale/pt-br.js +52 -0
- data/vendor/assets/javascripts/moment/src/locale/pt.js +56 -0
- data/vendor/assets/javascripts/moment/src/locale/ro.js +66 -0
- data/vendor/assets/javascripts/moment/src/locale/ru.js +173 -0
- data/vendor/assets/javascripts/moment/src/locale/sd.js +88 -0
- data/vendor/assets/javascripts/moment/src/locale/se.js +51 -0
- data/vendor/assets/javascripts/moment/src/locale/si.js +61 -0
- data/vendor/assets/javascripts/moment/src/locale/sk.js +141 -0
- data/vendor/assets/javascripts/moment/src/locale/sl.js +152 -0
- data/vendor/assets/javascripts/moment/src/locale/sq.js +61 -0
- data/vendor/assets/javascripts/moment/src/locale/sr-cyrl.js +100 -0
- data/vendor/assets/javascripts/moment/src/locale/sr.js +100 -0
- data/vendor/assets/javascripts/moment/src/locale/ss.js +80 -0
- data/vendor/assets/javascripts/moment/src/locale/sv.js +60 -0
- data/vendor/assets/javascripts/moment/src/locale/sw.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/ta.js +120 -0
- data/vendor/assets/javascripts/moment/src/locale/te.js +79 -0
- data/vendor/assets/javascripts/moment/src/locale/tet.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/th.js +57 -0
- data/vendor/assets/javascripts/moment/src/locale/tl-ph.js +53 -0
- data/vendor/assets/javascripts/moment/src/locale/tlh.js +110 -0
- data/vendor/assets/javascripts/moment/src/locale/tr.js +81 -0
- data/vendor/assets/javascripts/moment/src/locale/tzl.js +82 -0
- data/vendor/assets/javascripts/moment/src/locale/tzm-latn.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/tzm.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/uk.js +142 -0
- data/vendor/assets/javascripts/moment/src/locale/ur.js +89 -0
- data/vendor/assets/javascripts/moment/src/locale/uz-latn.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/uz.js +49 -0
- data/vendor/assets/javascripts/moment/src/locale/vi.js +70 -0
- data/vendor/assets/javascripts/moment/src/locale/x-pseudo.js +58 -0
- data/vendor/assets/javascripts/moment/src/locale/yo.js +50 -0
- data/vendor/assets/javascripts/moment/src/locale/zh-cn.js +102 -0
- data/vendor/assets/javascripts/moment/src/locale/zh-hk.js +95 -0
- data/vendor/assets/javascripts/moment/src/locale/zh-tw.js +94 -0
- data/vendor/assets/javascripts/moment/src/moment.js +82 -0
- data/vendor/assets/javascripts/moment/templates/default.js +5 -0
- data/vendor/assets/javascripts/moment/templates/locale-header.js +6 -0
- data/vendor/assets/javascripts/moment/templates/test-header.js +6 -0
- metadata +943 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Firebase namespace and Firebase App API.
|
|
3
|
+
* Version: 3.7.1
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2017 Google Inc. All Rights Reserved.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*
|
|
19
|
+
* @externs
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* <code>firebase</code> is a global namespace from which all the Firebase
|
|
24
|
+
* services are accessed.
|
|
25
|
+
*
|
|
26
|
+
* @namespace
|
|
27
|
+
*/
|
|
28
|
+
var firebase = {};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Creates and initializes a Firebase {@link firebase.app.App app} instance.
|
|
32
|
+
*
|
|
33
|
+
* See
|
|
34
|
+
* {@link
|
|
35
|
+
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
|
|
36
|
+
* Add Firebase to your app} and
|
|
37
|
+
* {@link
|
|
38
|
+
* https://firebase.google.com/docs/web/setup#initialize_multiple_apps
|
|
39
|
+
* Initialize multiple apps} for detailed documentation.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* // Initialize default app
|
|
43
|
+
* // Retrieve your own options values by adding a web app on
|
|
44
|
+
* // https://console.firebase.google.com
|
|
45
|
+
* firebase.initializeApp({
|
|
46
|
+
* apiKey: "AIza....", // Auth / General Use
|
|
47
|
+
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
|
|
48
|
+
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
|
|
49
|
+
* storageBucket: "YOUR_APP.appspot.com", // Storage
|
|
50
|
+
* messagingSenderId: "123456789" // Cloud Messaging
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* // Initialize another app
|
|
55
|
+
* var otherApp = firebase.initializeApp({
|
|
56
|
+
* databaseURL: "https://<OTHER_DATABASE_NAME>.firebaseio.com",
|
|
57
|
+
* storageBucket: "<OTHER_STORAGE_BUCKET>.appspot.com"
|
|
58
|
+
* }, "otherApp");
|
|
59
|
+
*
|
|
60
|
+
* @param {!Object} options Options to configure the app's services.
|
|
61
|
+
* @param {string=} name Optional name of the app to initialize. If no name
|
|
62
|
+
* is provided, the default is `"[DEFAULT]"`.
|
|
63
|
+
*
|
|
64
|
+
* @return {!firebase.app.App} The initialized app.
|
|
65
|
+
*/
|
|
66
|
+
firebase.initializeApp = function(options, name) {};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Retrieves a Firebase {@link firebase.app.App app} instance.
|
|
70
|
+
*
|
|
71
|
+
* When called with no arguments, the default app is returned. When an app name
|
|
72
|
+
* is provided, the app corresponding to that name is returned.
|
|
73
|
+
*
|
|
74
|
+
* An exception is thrown if the app being retrieved has not yet been
|
|
75
|
+
* initialized.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* // Return the default app
|
|
79
|
+
* var app = firebase.app();
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* // Return a named app
|
|
83
|
+
* var otherApp = firebase.app("otherApp");
|
|
84
|
+
*
|
|
85
|
+
* @namespace
|
|
86
|
+
* @param {string=} name Optional name of the app to return. If no name is
|
|
87
|
+
* provided, the default is `"[DEFAULT]"`.
|
|
88
|
+
*
|
|
89
|
+
* @return {!firebase.app.App} The app corresponding to the provided app name.
|
|
90
|
+
* If no app name is provided, the default app is returned.
|
|
91
|
+
*/
|
|
92
|
+
firebase.app = function(name) {};
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* A (read-only) array of all initialized apps.
|
|
96
|
+
* @type {!Array<firebase.app.App>}
|
|
97
|
+
*/
|
|
98
|
+
firebase.apps;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* The current SDK version.
|
|
102
|
+
* @type {string}
|
|
103
|
+
*/
|
|
104
|
+
firebase.SDK_VERSION;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* A Firebase App holds the initialization information for a collection of
|
|
108
|
+
* services.
|
|
109
|
+
*
|
|
110
|
+
* Do not call this constructor directly. Instead, use
|
|
111
|
+
* {@link firebase#.initializeApp `firebase.initializeApp()`} to create an app.
|
|
112
|
+
*
|
|
113
|
+
* @interface
|
|
114
|
+
*/
|
|
115
|
+
firebase.app.App = function() {};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* The (read-only) name for this app.
|
|
119
|
+
*
|
|
120
|
+
* The default app's name is `"[DEFAULT]"`.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* // The default app's name is "[DEFAULT]"
|
|
124
|
+
* firebase.initializeApp(defaultAppConfig);
|
|
125
|
+
* console.log(firebase.app().name); // "[DEFAULT]"
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* // A named app's name is what you provide to initializeApp()
|
|
129
|
+
* var otherApp = firebase.initializeApp(otherAppConfig, "other");
|
|
130
|
+
* console.log(otherApp.name); // "other"
|
|
131
|
+
*
|
|
132
|
+
* @type {string}
|
|
133
|
+
*/
|
|
134
|
+
firebase.app.App.prototype.name;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* The (read-only) configuration options for this app. These are the original
|
|
138
|
+
* parameters given in
|
|
139
|
+
* {@link firebase#.initializeApp `firebase.initializeApp()`}.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* var app = firebase.initializeApp(config);
|
|
143
|
+
* console.log(app.options.credential === config.credential); // true
|
|
144
|
+
* console.log(app.options.databaseURL === config.databaseURL); // true
|
|
145
|
+
*
|
|
146
|
+
* @type {!Object}
|
|
147
|
+
*/
|
|
148
|
+
firebase.app.App.prototype.options;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Renders this app unusable and frees the resources of all associated
|
|
152
|
+
* services.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* app.delete()
|
|
156
|
+
* .then(function() {
|
|
157
|
+
* console.log("App deleted successfully");
|
|
158
|
+
* })
|
|
159
|
+
* .catch(function(error) {
|
|
160
|
+
* console.log("Error deleting app:", error);
|
|
161
|
+
* });
|
|
162
|
+
*
|
|
163
|
+
* @return {!firebase.Promise<void>} An empty promise fulfilled when the app has
|
|
164
|
+
* been deleted.
|
|
165
|
+
*/
|
|
166
|
+
firebase.app.App.prototype.delete = function() {};
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* A Thenable is the standard interface returned by a Promise.
|
|
170
|
+
*
|
|
171
|
+
* @template T
|
|
172
|
+
* @interface
|
|
173
|
+
*/
|
|
174
|
+
firebase.Thenable = function() {};
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Assign callback functions called when the Thenable value either
|
|
178
|
+
* resolves, or is rejected.
|
|
179
|
+
*
|
|
180
|
+
* @param {(function(T): *)=} onResolve Called when the Thenable resolves.
|
|
181
|
+
* @param {(function(!Error): *)=} onReject Called when the Thenable is rejected
|
|
182
|
+
* (with an error).
|
|
183
|
+
* @return {!firebase.Thenable<*>}
|
|
184
|
+
*/
|
|
185
|
+
firebase.Thenable.prototype.then = function(onResolve, onReject) {};
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Assign a callback when the Thenable rejects.
|
|
189
|
+
*
|
|
190
|
+
* @param {(function(!Error): *)=} onReject Called when the Thenable is rejected
|
|
191
|
+
* (with an error).
|
|
192
|
+
* @return {!firebase.Thenable<*>}
|
|
193
|
+
*/
|
|
194
|
+
firebase.Thenable.prototype.catch = function(onReject) {};
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* A Promise represents an eventual (asynchronous) value. A Promise should
|
|
198
|
+
* (eventually) either resolve or reject. When it does, it will call all the
|
|
199
|
+
* callback functions that have been assigned via the <code>.then()</code> or
|
|
200
|
+
* <code>.catch()</code> methods.
|
|
201
|
+
*
|
|
202
|
+
* <code>firebase.Promise</code> is the same as the native Promise
|
|
203
|
+
* implementation when available in the current environment, otherwise it is a
|
|
204
|
+
* compatible implementation of the Promise/A+ spec.
|
|
205
|
+
*
|
|
206
|
+
* @template T
|
|
207
|
+
* @constructor
|
|
208
|
+
* @implements {firebase.Thenable}
|
|
209
|
+
* @param {function((function(T): void),
|
|
210
|
+
* (function(!Error): void))} resolver
|
|
211
|
+
*/
|
|
212
|
+
firebase.Promise = function(resolver) {};
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Assign callback functions called when the Promise either resolves, or is
|
|
216
|
+
* rejected.
|
|
217
|
+
*
|
|
218
|
+
* @param {(function(T): *)=} onResolve Called when the Promise resolves.
|
|
219
|
+
* @param {(function(!Error): *)=} onReject Called when the Promise is rejected
|
|
220
|
+
* (with an error).
|
|
221
|
+
* @return {!firebase.Promise<*>}
|
|
222
|
+
*/
|
|
223
|
+
firebase.Promise.prototype.then = function(onResolve, onReject) {};
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Assign a callback when the Promise rejects.
|
|
227
|
+
*
|
|
228
|
+
* @param {(function(!Error): *)=} onReject Called when the Promise is rejected
|
|
229
|
+
* (with an error).
|
|
230
|
+
*/
|
|
231
|
+
firebase.Promise.prototype.catch = function(onReject) {};
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Return a resolved Promise.
|
|
235
|
+
*
|
|
236
|
+
* @template T
|
|
237
|
+
* @param {T=} value The value to be returned by the Promise.
|
|
238
|
+
* @return {!firebase.Promise<T>}
|
|
239
|
+
*/
|
|
240
|
+
firebase.Promise.resolve = function(value) {};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Return (an immediately) rejected Promise.
|
|
244
|
+
*
|
|
245
|
+
* @param {!Error} error The reason for the Promise being rejected.
|
|
246
|
+
* @return {!firebase.Promise<*>}
|
|
247
|
+
*/
|
|
248
|
+
firebase.Promise.reject = function(error) {};
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Convert an array of Promises, to a single array of values.
|
|
252
|
+
* <code>Promise.all()</code> resolves only after all the Promises in the array
|
|
253
|
+
* have resolved.
|
|
254
|
+
*
|
|
255
|
+
* <code>Promise.all()</code> rejects when any of the promises in the Array have
|
|
256
|
+
* rejected.
|
|
257
|
+
*
|
|
258
|
+
* @param {!Array<!firebase.Promise<*>>} values
|
|
259
|
+
* @return {!firebase.Promise<!Array<*>>}
|
|
260
|
+
*/
|
|
261
|
+
firebase.Promise.all = function(values) {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*! @license Firebase v3.7.1
|
|
2
|
+
Build: 3.7.1-rc.1
|
|
3
|
+
Terms: https://firebase.google.com/terms/ */
|
|
4
|
+
var firebase = null; (function() { var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},k="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,l=function(){l=function(){};k.Symbol||(k.Symbol=ba)},ca=0,ba=function(a){return"jscomp_symbol_"+(a||"")+ca++},n=function(){l();var a=k.Symbol.iterator;a||(a=k.Symbol.iterator=
|
|
5
|
+
k.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return m(this)}});n=function(){}},m=function(a){var b=0;return da(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})},da=function(a){n();a={next:a};a[k.Symbol.iterator]=function(){return this};return a},q=this,r=function(){},t=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);
|
|
6
|
+
if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},v=function(a){return"function"==t(a)},ea=function(a,
|
|
7
|
+
b,c){return a.call.apply(a.bind,arguments)},fa=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}},w=function(a,b,c){w=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ea:fa;return w.apply(null,arguments)},x=function(a,b){var c=Array.prototype.slice.call(arguments,
|
|
8
|
+
1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}},y=function(a,b){function c(){}c.prototype=b.prototype;a.ha=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(a,c,h){for(var e=Array(arguments.length-2),d=2;d<arguments.length;d++)e[d-2]=arguments[d];return b.prototype[c].apply(a,e)}};var A;A="undefined"!==typeof window?window:"undefined"!==typeof self?self:global;
|
|
9
|
+
var __extends=function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},__assign=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++){b=arguments[c];for(var e in b)Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e])}return a},__rest=function(a,b){var c={},d;for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"===typeof Object.getOwnPropertySymbols){var e=
|
|
10
|
+
0;for(d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&(c[d[e]]=a[d[e]])}return c},__decorate=function(a,b,c,d){var e=arguments.length,h=3>e?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,g;g=A.Reflect;if("object"===typeof g&&"function"===typeof g.decorate)h=g.decorate(a,b,c,d);else for(var f=a.length-1;0<=f;f--)if(g=a[f])h=(3>e?g(h):3<e?g(b,c,h):g(b,c))||h;return 3<e&&h&&Object.defineProperty(b,c,h),h},__metadata=function(a,b){var c=A.Reflect;if("object"===typeof c&&"function"===
|
|
11
|
+
typeof c.metadata)return c.metadata(a,b)},__param=function(a,b){return function(c,d){b(c,d,a)}},__awaiter=function(a,b,c,d){return new (c||(c=Promise))(function(e,h){function g(a){try{p(d.next(a))}catch(u){h(u)}}function f(a){try{p(d["throw"](a))}catch(u){h(u)}}function p(a){a.done?e(a.value):(new c(function(b){b(a.value)})).then(g,f)}p((d=d.apply(a,b)).next())})},__generator=function(a,b){function c(a){return function(b){return d([a,b])}}function d(c){if(h)throw new TypeError("Generator is already executing.");
|
|
12
|
+
for(;e;)try{if(h=1,g&&(f=g[c[0]&2?"return":c[0]?"throw":"next"])&&!(f=f.call(g,c[1])).done)return f;if(g=0,f)c=[0,f.value];switch(c[0]){case 0:case 1:f=c;break;case 4:return e.label++,{value:c[1],done:!1};case 5:e.label++;g=c[1];c=[0];continue;case 7:c=e.G.pop();e.I.pop();continue;default:if(!(f=e.I,f=0<f.length&&f[f.length-1])&&(6===c[0]||2===c[0])){e=0;continue}if(3===c[0]&&(!f||c[1]>f[0]&&c[1]<f[3]))e.label=c[1];else if(6===c[0]&&e.label<f[1])e.label=f[1],f=c;else if(f&&e.label<f[2])e.label=f[2],
|
|
13
|
+
e.G.push(c);else{f[2]&&e.G.pop();e.I.pop();continue}}c=b.call(a,e)}catch(z){c=[6,z],g=0}finally{h=f=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}var e={label:0,ga:function(){if(f[0]&1)throw f[1];return f[1]},I:[],G:[]},h,g,f;return{next:c(0),"throw":c(1),"return":c(2)}};
|
|
14
|
+
"undefined"!==typeof A.S&&A.S||(A.__extends=__extends,A.__assign=__assign,A.__rest=__rest,A.__extends=__extends,A.__decorate=__decorate,A.__metadata=__metadata,A.__param=__param,A.__awaiter=__awaiter,A.__generator=__generator);var B=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,B);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))};y(B,Error);B.prototype.name="CustomError";var ga=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};var C=function(a,b){b.unshift(a);B.call(this,ga.apply(null,b));b.shift()};y(C,B);C.prototype.name="AssertionError";var ha=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),h=d;else a&&(e+=": "+a,h=b);throw new C(""+e,h||[]);},D=function(a,b,c){a||ha("",null,b,Array.prototype.slice.call(arguments,2))},E=function(a,b,c){v(a)||ha("Expected function but got %s: %s.",[t(a),a],b,Array.prototype.slice.call(arguments,2))};var F=function(a,b,c){this.Y=c;this.T=a;this.Z=b;this.s=0;this.o=null};F.prototype.get=function(){var a;0<this.s?(this.s--,a=this.o,this.o=a.next,a.next=null):a=this.T();return a};F.prototype.put=function(a){this.Z(a);this.s<this.Y&&(this.s++,a.next=this.o,this.o=a)};var G;a:{var ia=q.navigator;if(ia){var ja=ia.userAgent;if(ja){G=ja;break a}}G=""};var ka=function(a){q.setTimeout(function(){throw a;},0)},H,la=function(){var a=q.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&-1==G.indexOf("Presto")&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write("");a.close();var c="callImmediate"+Math.random(),d="file:"==b.location.protocol?"*":b.location.protocol+
|
|
15
|
+
"//"+b.location.host,a=w(function(a){if(("*"==d||a.origin==d)&&a.data==c)this.port1.onmessage()},this);b.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a&&-1==G.indexOf("Trident")&&-1==G.indexOf("MSIE")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var a=c.J;c.J=null;a()}};return function(a){d.next={J:a};d=d.next;b.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in
|
|
16
|
+
document.createElement("SCRIPT")?function(a){var b=document.createElement("SCRIPT");b.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){q.setTimeout(a,0)}};var I=function(){this.v=this.g=null},ma=new F(function(){return new J},function(a){a.reset()},100);I.prototype.add=function(a,b){var c=ma.get();c.set(a,b);this.v?this.v.next=c:(D(!this.g),this.g=c);this.v=c};I.prototype.remove=function(){var a=null;this.g&&(a=this.g,this.g=this.g.next,this.g||(this.v=null),a.next=null);return a};var J=function(){this.next=this.scope=this.B=null};J.prototype.set=function(a,b){this.B=a;this.scope=b;this.next=null};
|
|
17
|
+
J.prototype.reset=function(){this.next=this.scope=this.B=null};var M=function(a,b){K||na();L||(K(),L=!0);oa.add(a,b)},K,na=function(){if(-1!=String(q.Promise).indexOf("[native code]")){var a=q.Promise.resolve(void 0);K=function(){a.then(pa)}}else K=function(){var a=pa;!v(q.setImmediate)||q.Window&&q.Window.prototype&&-1==G.indexOf("Edge")&&q.Window.prototype.setImmediate==q.setImmediate?(H||(H=la()),H(a)):q.setImmediate(a)}},L=!1,oa=new I,pa=function(){for(var a;a=oa.remove();){try{a.B.call(a.scope)}catch(b){ka(b)}ma.put(a)}L=!1};var O=function(a,b){this.b=0;this.R=void 0;this.j=this.h=this.u=null;this.m=this.A=!1;if(a!=r)try{var c=this;a.call(b,function(a){N(c,2,a)},function(a){try{if(a instanceof Error)throw a;throw Error("Promise rejected.");}catch(e){}N(c,3,a)})}catch(d){N(this,3,d)}},qa=function(){this.next=this.context=this.i=this.f=this.child=null;this.w=!1};qa.prototype.reset=function(){this.context=this.i=this.f=this.child=null;this.w=!1};
|
|
18
|
+
var ra=new F(function(){return new qa},function(a){a.reset()},100),sa=function(a,b,c){var d=ra.get();d.f=a;d.i=b;d.context=c;return d},ua=function(a,b,c){ta(a,b,c,null)||M(x(b,a))};O.prototype.then=function(a,b,c){null!=a&&E(a,"opt_onFulfilled should be a function.");null!=b&&E(b,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");return va(this,v(a)?a:null,v(b)?b:null,c)};O.prototype.then=O.prototype.then;O.prototype.$goog_Thenable=!0;
|
|
19
|
+
O.prototype.ba=function(a,b){return va(this,null,a,b)};var xa=function(a,b){a.h||2!=a.b&&3!=a.b||wa(a);D(null!=b.f);a.j?a.j.next=b:a.h=b;a.j=b},va=function(a,b,c,d){var e=sa(null,null,null);e.child=new O(function(a,g){e.f=b?function(c){try{var e=b.call(d,c);a(e)}catch(z){g(z)}}:a;e.i=c?function(b){try{var e=c.call(d,b);a(e)}catch(z){g(z)}}:g});e.child.u=a;xa(a,e);return e.child};O.prototype.da=function(a){D(1==this.b);this.b=0;N(this,2,a)};
|
|
20
|
+
O.prototype.ea=function(a){D(1==this.b);this.b=0;N(this,3,a)};
|
|
21
|
+
var N=function(a,b,c){0==a.b&&(a===c&&(b=3,c=new TypeError("Promise cannot resolve to itself")),a.b=1,ta(c,a.da,a.ea,a)||(a.R=c,a.b=b,a.u=null,wa(a),3!=b||ya(a,c)))},ta=function(a,b,c,d){if(a instanceof O)return null!=b&&E(b,"opt_onFulfilled should be a function."),null!=c&&E(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),xa(a,sa(b||r,c||null,d)),!0;var e;if(a)try{e=!!a.$goog_Thenable}catch(g){e=!1}else e=!1;if(e)return a.then(b,c,d),
|
|
22
|
+
!0;e=typeof a;if("object"==e&&null!=a||"function"==e)try{var h=a.then;if(v(h))return za(a,h,b,c,d),!0}catch(g){return c.call(d,g),!0}return!1},za=function(a,b,c,d,e){var h=!1,g=function(a){h||(h=!0,c.call(e,a))},f=function(a){h||(h=!0,d.call(e,a))};try{b.call(a,g,f)}catch(p){f(p)}},wa=function(a){a.A||(a.A=!0,M(a.V,a))},Aa=function(a){var b=null;a.h&&(b=a.h,a.h=b.next,b.next=null);a.h||(a.j=null);null!=b&&D(null!=b.f);return b};
|
|
23
|
+
O.prototype.V=function(){for(var a;a=Aa(this);){var b=this.b,c=this.R;if(3==b&&a.i&&!a.w){var d;for(d=this;d&&d.m;d=d.u)d.m=!1}if(a.child)a.child.u=null,Ba(a,b,c);else try{a.w?a.f.call(a.context):Ba(a,b,c)}catch(e){Ca.call(null,e)}ra.put(a)}this.A=!1};var Ba=function(a,b,c){2==b?a.f.call(a.context,c):a.i&&a.i.call(a.context,c)},ya=function(a,b){a.m=!0;M(function(){a.m&&Ca.call(null,b)})},Ca=ka;function P(a,b){if(!(b instanceof Object))return b;switch(b.constructor){case Date:return new Date(b.getTime());case Object:void 0===a&&(a={});break;case Array:a=[];break;default:return b}for(var c in b)b.hasOwnProperty(c)&&(a[c]=P(a[c],b[c]));return a};O.all=function(a){return new O(function(b,c){var d=a.length,e=[];if(d)for(var h=function(a,c){d--;e[a]=c;0==d&&b(e)},g=function(a){c(a)},f=0,p;f<a.length;f++)p=a[f],ua(p,x(h,f),g);else b(e)})};O.resolve=function(a){if(a instanceof O)return a;var b=new O(r);N(b,2,a);return b};O.reject=function(a){return new O(function(b,c){c(a)})};O.prototype["catch"]=O.prototype.ba;var Q=O;"undefined"!==typeof Promise&&(Q=Promise);var Da=Q;function Ea(a,b){a=new R(a,b);return a.subscribe.bind(a)}var R=function(a,b){var c=this;this.a=[];this.P=0;this.task=Da.resolve();this.l=!1;this.F=b;this.task.then(function(){a(c)}).catch(function(a){c.error(a)})};R.prototype.next=function(a){S(this,function(b){b.next(a)})};R.prototype.error=function(a){S(this,function(b){b.error(a)});this.close(a)};R.prototype.complete=function(){S(this,function(a){a.complete()});this.close()};
|
|
24
|
+
R.prototype.subscribe=function(a,b,c){var d=this,e;if(void 0===a&&void 0===b&&void 0===c)throw Error("Missing Observer.");e=Fa(a)?a:{next:a,error:b,complete:c};void 0===e.next&&(e.next=T);void 0===e.error&&(e.error=T);void 0===e.complete&&(e.complete=T);a=this.fa.bind(this,this.a.length);this.l&&this.task.then(function(){try{d.K?e.error(d.K):e.complete()}catch(h){}});this.a.push(e);return a};
|
|
25
|
+
R.prototype.fa=function(a){void 0!==this.a&&void 0!==this.a[a]&&(delete this.a[a],--this.P,0===this.P&&void 0!==this.F&&this.F(this))};var S=function(a,b){if(!a.l)for(var c=0;c<a.a.length;c++)Ga(a,c,b)},Ga=function(a,b,c){a.task.then(function(){if(void 0!==a.a&&void 0!==a.a[b])try{c(a.a[b])}catch(d){"undefined"!==typeof console&&console.error&&console.error(d)}})};R.prototype.close=function(a){var b=this;this.l||(this.l=!0,void 0!==a&&(this.K=a),this.task.then(function(){b.a=void 0;b.F=void 0}))};
|
|
26
|
+
function Fa(a){if("object"!==typeof a||null===a)return!1;var b;b=["next","error","complete"];n();var c=b[Symbol.iterator];b=c?c.call(b):m(b);for(c=b.next();!c.done;c=b.next())if(c=c.value,c in a&&"function"===typeof a[c])return!0;return!1}function T(){};var Ha=Error.captureStackTrace,V=function(a,b){this.code=a;this.message=b;if(Ha)Ha(this,U.prototype.create);else{var c=Error.apply(this,arguments);this.name="FirebaseError";Object.defineProperty(this,"stack",{get:function(){return c.stack}})}};V.prototype=Object.create(Error.prototype);V.prototype.constructor=V;V.prototype.name="FirebaseError";var U=function(a,b,c){this.$=a;this.aa=b;this.U=c;this.pattern=/\{\$([^}]+)}/g};
|
|
27
|
+
U.prototype.create=function(a,b){void 0===b&&(b={});var c=this.U[a];a=this.$+"/"+a;var c=void 0===c?"Error":c.replace(this.pattern,function(a,c){a=b[c];return void 0!==a?a.toString():"<"+c+"?>"}),c=this.aa+": "+c+" ("+a+").",c=new V(a,c),d;for(d in b)b.hasOwnProperty(d)&&"_"!==d.slice(-1)&&(c[d]=b[d]);return c};var W=Q,X=function(a,b,c){var d=this;this.M=c;this.N=!1;this.c={};this.D=b;this.H=P(void 0,a);a="serviceAccount"in this.H;("credential"in this.H||a)&&"undefined"!==typeof console&&console.log("The '"+(a?"serviceAccount":"credential")+"' property specified in the first argument to initializeApp() is deprecated and will be removed in the next major version. You should instead use the 'firebase-admin' package. See https://firebase.google.com/docs/admin/setup for details on how to get started.");Object.keys(c.INTERNAL.factories).forEach(function(a){var b=
|
|
28
|
+
c.INTERNAL.useAsService(d,a);null!==b&&(b=d.X.bind(d,b),d[a]=b)})};X.prototype.delete=function(){var a=this;return(new W(function(b){Y(a);b()})).then(function(){a.M.INTERNAL.removeApp(a.D);var b=[];Object.keys(a.c).forEach(function(c){Object.keys(a.c[c]).forEach(function(d){b.push(a.c[c][d])})});return W.all(b.map(function(a){return a.INTERNAL.delete()}))}).then(function(){a.N=!0;a.c={}})};
|
|
29
|
+
X.prototype.X=function(a,b){Y(this);"undefined"===typeof this.c[a]&&(this.c[a]={});var c=b||"[DEFAULT]";return"undefined"===typeof this.c[a][c]?(b=this.M.INTERNAL.factories[a](this,this.W.bind(this),b),this.c[a][c]=b):this.c[a][c]};X.prototype.W=function(a){P(this,a)};var Y=function(a){a.N&&Z("app-deleted",{name:a.D})};k.Object.defineProperties(X.prototype,{name:{configurable:!0,enumerable:!0,get:function(){Y(this);return this.D}},options:{configurable:!0,enumerable:!0,get:function(){Y(this);return this.H}}});
|
|
30
|
+
X.prototype.name&&X.prototype.options||X.prototype.delete||console.log("dc");
|
|
31
|
+
function Ia(){function a(a){a=a||"[DEFAULT]";var b=d[a];void 0===b&&Z("no-app",{name:a});return b}function b(a,b){Object.keys(e).forEach(function(d){d=c(a,d);if(null!==d&&h[d])h[d](b,a)})}function c(a,b){if("serverAuth"===b)return null;var c=b;a=a.options;"auth"===b&&(a.serviceAccount||a.credential)&&(c="serverAuth","serverAuth"in e||Z("sa-not-supported"));return c}var d={},e={},h={},g={__esModule:!0,initializeApp:function(a,c){void 0===c?c="[DEFAULT]":"string"===typeof c&&""!==c||Z("bad-app-name",
|
|
32
|
+
{name:c+""});void 0!==d[c]&&Z("duplicate-app",{name:c});a=new X(a,c,g);d[c]=a;b(a,"create");void 0!=a.INTERNAL&&void 0!=a.INTERNAL.getToken||P(a,{INTERNAL:{getUid:function(){return null},getToken:function(){return W.resolve(null)},addAuthTokenListener:function(){},removeAuthTokenListener:function(){}}});return a},app:a,apps:null,Promise:W,SDK_VERSION:"0.0.0",INTERNAL:{registerService:function(b,c,d,u){e[b]&&Z("duplicate-service",{name:b});e[b]=c;u&&(h[b]=u);c=function(c){void 0===c&&(c=a());return c[b]()};
|
|
33
|
+
void 0!==d&&P(c,d);return g[b]=c},createFirebaseNamespace:Ia,extendNamespace:function(a){P(g,a)},createSubscribe:Ea,ErrorFactory:U,removeApp:function(a){b(d[a],"delete");delete d[a]},factories:e,useAsService:c,Promise:O,deepExtend:P}};g["default"]=g;Object.defineProperty(g,"apps",{get:function(){return Object.keys(d).map(function(a){return d[a]})}});a.App=X;return g}function Z(a,b){throw Ja.create(a,b);}
|
|
34
|
+
var Ja=new U("app","Firebase",{"no-app":"No Firebase App '{$name}' has been created - call Firebase App.initializeApp()","bad-app-name":"Illegal App name: '{$name}","duplicate-app":"Firebase App named '{$name}' already exists","app-deleted":"Firebase App named '{$name}' already deleted","duplicate-service":"Firebase service named '{$name}' already registered","sa-not-supported":"Initializing the Firebase SDK with a service account is only allowed in a Node.js environment. On client devices, you should instead initialize the SDK with an api key and auth domain"});"undefined"!==typeof firebase&&(firebase=Ia()); }).call(this);
|
|
35
|
+
firebase.SDK_VERSION = "3.7.1";
|
|
@@ -0,0 +1,1300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Firebase Auth API.
|
|
3
|
+
* Version: 3.7.1
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2017 Google Inc. All Rights Reserved.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*
|
|
19
|
+
* @externs
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Gets the {@link firebase.auth.Auth `Auth`} service for the default app or a
|
|
24
|
+
* given app.
|
|
25
|
+
*
|
|
26
|
+
* `firebase.auth()` can be called with no arguments to access the default app's
|
|
27
|
+
* {@link firebase.auth.Auth `Auth`} service or as `firebase.auth(app)` to
|
|
28
|
+
* access the {@link firebase.auth.Auth `Auth`} service associated with a
|
|
29
|
+
* specific app.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* // Get the Auth service for the default app
|
|
33
|
+
* var defaultAuth = firebase.auth();
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Get the Auth service for a given app
|
|
37
|
+
* var otherAuth = firebase.auth(otherApp);
|
|
38
|
+
*
|
|
39
|
+
* @namespace
|
|
40
|
+
* @param {!firebase.app.App=} app
|
|
41
|
+
*
|
|
42
|
+
* @return {!firebase.auth.Auth}
|
|
43
|
+
*/
|
|
44
|
+
firebase.auth = function(app) {};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Interface that represents the credentials returned by an auth provider.
|
|
48
|
+
* Implementations specify the details about each auth provider's credential
|
|
49
|
+
* requirements.
|
|
50
|
+
*
|
|
51
|
+
* @interface
|
|
52
|
+
*/
|
|
53
|
+
firebase.auth.AuthCredential = function() {};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The authentication provider ID for the credential.
|
|
57
|
+
* For example, 'facebook.com', or 'google.com'.
|
|
58
|
+
*
|
|
59
|
+
* @type {string}
|
|
60
|
+
*/
|
|
61
|
+
firebase.auth.AuthCredential.prototype.provider;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Gets the {@link firebase.auth.Auth `Auth`} service for the current app.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* var auth = app.auth();
|
|
68
|
+
* // The above is shorthand for:
|
|
69
|
+
* // var auth = firebase.auth(app);
|
|
70
|
+
*
|
|
71
|
+
* @return {!firebase.auth.Auth}
|
|
72
|
+
*/
|
|
73
|
+
firebase.app.App.prototype.auth = function() {};
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* User profile information, visible only to the Firebase project's
|
|
77
|
+
* apps.
|
|
78
|
+
*
|
|
79
|
+
* @interface
|
|
80
|
+
*/
|
|
81
|
+
firebase.UserInfo = function() {};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* The user's unique ID.
|
|
85
|
+
*
|
|
86
|
+
* @type {string}
|
|
87
|
+
*/
|
|
88
|
+
firebase.UserInfo.prototype.uid;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* The authentication provider ID for the current user.
|
|
92
|
+
* For example, 'facebook.com', or 'google.com'.
|
|
93
|
+
*
|
|
94
|
+
* @type {string}
|
|
95
|
+
*/
|
|
96
|
+
firebase.UserInfo.prototype.providerId;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* The user's email address (if available).
|
|
100
|
+
* @type {?string}
|
|
101
|
+
*/
|
|
102
|
+
firebase.UserInfo.prototype.email;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* The user's display name (if available).
|
|
106
|
+
*
|
|
107
|
+
* @type {?string}
|
|
108
|
+
*/
|
|
109
|
+
firebase.UserInfo.prototype.displayName;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* The URL of the user's profile picture (if available).
|
|
113
|
+
*
|
|
114
|
+
* @type {?string}
|
|
115
|
+
*/
|
|
116
|
+
firebase.UserInfo.prototype.photoURL;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* A user account.
|
|
120
|
+
*
|
|
121
|
+
* @interface
|
|
122
|
+
* @extends {firebase.UserInfo}
|
|
123
|
+
*/
|
|
124
|
+
firebase.User;
|
|
125
|
+
|
|
126
|
+
/** @type {boolean} */
|
|
127
|
+
firebase.User.prototype.isAnonymous;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* True if the user's email address has been verified.
|
|
131
|
+
* @type {boolean}
|
|
132
|
+
*/
|
|
133
|
+
firebase.User.prototype.emailVerified;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Additional provider-specific information about the user.
|
|
137
|
+
* @type {!Array<firebase.UserInfo>}
|
|
138
|
+
*/
|
|
139
|
+
firebase.User.prototype.providerData;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* A refresh token for the user account. Use only for advanced scenarios that
|
|
143
|
+
* require explicitly refreshing tokens.
|
|
144
|
+
* @type {string}
|
|
145
|
+
*/
|
|
146
|
+
firebase.User.prototype.refreshToken;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Returns a JWT token used to identify the user to a Firebase service.
|
|
150
|
+
*
|
|
151
|
+
* Returns the current token if it has not expired, otherwise this will
|
|
152
|
+
* refresh the token and return a new one.
|
|
153
|
+
*
|
|
154
|
+
* @param {boolean=} forceRefresh Force refresh regardless of token
|
|
155
|
+
* expiration.
|
|
156
|
+
* @return {!firebase.Promise<string>}
|
|
157
|
+
*/
|
|
158
|
+
firebase.User.prototype.getToken = function(forceRefresh) {};
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Refreshes the current user, if signed in.
|
|
162
|
+
*
|
|
163
|
+
* @return {!firebase.Promise<void>}
|
|
164
|
+
*/
|
|
165
|
+
firebase.User.prototype.reload = function() {};
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Sends a verification email to a user.
|
|
169
|
+
*
|
|
170
|
+
* The verification process is completed by calling
|
|
171
|
+
* {@link firebase.auth.Auth#applyActionCode}
|
|
172
|
+
*
|
|
173
|
+
* @return {!firebase.Promise<void>}
|
|
174
|
+
*/
|
|
175
|
+
firebase.User.prototype.sendEmailVerification = function() {};
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Links the user account with the given credentials.
|
|
180
|
+
*
|
|
181
|
+
* <h4>Error Codes</h4>
|
|
182
|
+
* <dl>
|
|
183
|
+
* <dt>auth/provider-already-linked</dt>
|
|
184
|
+
* <dd>Thrown if the provider has already been linked to the user. This error is
|
|
185
|
+
* thrown even if this is not the same provider's account that is currently
|
|
186
|
+
* linked to the user.</dd>
|
|
187
|
+
* <dt>auth/invalid-credential</dt>
|
|
188
|
+
* <dd>Thrown if the provider's credential is not valid. This can happen if it
|
|
189
|
+
* has already expired when calling link, or if it used invalid token(s).
|
|
190
|
+
* Please refer to the Guide, under the provider's section you tried to
|
|
191
|
+
* link, and make sure you pass in the correct parameter to the credential
|
|
192
|
+
* method.</dd>
|
|
193
|
+
* <dt>auth/credential-already-in-use</dt>
|
|
194
|
+
* <dd>Thrown if the account corresponding to the credential already exists
|
|
195
|
+
* among your users, or is already linked to a Firebase User.
|
|
196
|
+
* For example, this error could be thrown if you are upgrading an anonymous
|
|
197
|
+
* user to a Google user by linking a Google credential to it and the Google
|
|
198
|
+
* credential used is already associated with an existing Firebase Google
|
|
199
|
+
* user.
|
|
200
|
+
* An <code>error.email</code> and <code>error.credential</code>
|
|
201
|
+
* ({@link firebase.auth.AuthCredential}) fields are also provided. You can
|
|
202
|
+
* recover from this error by signing in with that credential directly via
|
|
203
|
+
* {@link firebase.auth.Auth#signInWithCredential}.</dd>
|
|
204
|
+
* <dt>auth/email-already-in-use</dt>
|
|
205
|
+
* <dd>Thrown if the email corresponding to the credential already exists
|
|
206
|
+
* among your users. When thrown while linking a credential to an existing
|
|
207
|
+
* user, an <code>error.email</code> and <code>error.credential</code>
|
|
208
|
+
* ({@link firebase.auth.AuthCredential}) fields are also provided.
|
|
209
|
+
* You have to link the credential to the existing user with that email if
|
|
210
|
+
* you wish to continue signing in with that credential. To do so, call
|
|
211
|
+
* {@link firebase.auth.Auth#fetchProvidersForEmail}, sign in to
|
|
212
|
+
* <code>error.email</code> via one of the providers returned and then
|
|
213
|
+
* {@link firebase.User#link} the original credential to that newly signed
|
|
214
|
+
* in user.</dd>
|
|
215
|
+
* <dt>auth/operation-not-allowed</dt>
|
|
216
|
+
* <dd>Thrown if you have not enabled the provider in the Firebase Console. Go
|
|
217
|
+
* to the Firebase Console for your project, in the Auth section and the
|
|
218
|
+
* <strong>Sign in Method</strong> tab and configure the provider.</dd>
|
|
219
|
+
* <dt>auth/invalid-email</dt>
|
|
220
|
+
* <dd>Thrown if the email used in a
|
|
221
|
+
* {@link firebase.auth.EmailAuthProvider#credential} is invalid.</dd>
|
|
222
|
+
* <dt>auth/wrong-password</dt>
|
|
223
|
+
* <dd>Thrown if the password used in a
|
|
224
|
+
* {@link firebase.auth.EmailAuthProvider#credential} is not correct or when
|
|
225
|
+
* the user associated with the email does not have a password.</dd>
|
|
226
|
+
* </dl>
|
|
227
|
+
*
|
|
228
|
+
* @param {!firebase.auth.AuthCredential} credential The auth credential.
|
|
229
|
+
* @return {!firebase.Promise<!firebase.User>}
|
|
230
|
+
*/
|
|
231
|
+
firebase.User.prototype.link = function(credential) {};
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Unlinks a provider from a user account.
|
|
236
|
+
*
|
|
237
|
+
* <h4>Error Codes</h4>
|
|
238
|
+
* <dl>
|
|
239
|
+
* <dt>auth/no-such-provider</dt>
|
|
240
|
+
* <dd>Thrown if the user does not have this provider linked or when the
|
|
241
|
+
* provider ID given does not exist.</dd>
|
|
242
|
+
* </dt>
|
|
243
|
+
*
|
|
244
|
+
* @param {string} providerId
|
|
245
|
+
* @return {!firebase.Promise<!firebase.User>}
|
|
246
|
+
*/
|
|
247
|
+
firebase.User.prototype.unlink = function(providerId) {};
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Re-authenticates a user using a fresh credential. Use before operations
|
|
252
|
+
* such as {@link firebase.User#updatePassword} that require tokens from recent
|
|
253
|
+
* sign-in attempts.
|
|
254
|
+
*
|
|
255
|
+
* <h4>Error Codes</h4>
|
|
256
|
+
* <dl>
|
|
257
|
+
* <dt>auth/user-mismatch</dt>
|
|
258
|
+
* <dd>Thrown if the credential given does not correspond to the user.</dd>
|
|
259
|
+
* <dt>auth/user-not-found</dt>
|
|
260
|
+
* <dd>Thrown if the credential given does not correspond to any existing user.
|
|
261
|
+
* </dd>
|
|
262
|
+
* <dt>auth/invalid-credential</dt>
|
|
263
|
+
* <dd>Thrown if the provider's credential is not valid. This can happen if it
|
|
264
|
+
* has already expired when calling link, or if it used invalid token(s).
|
|
265
|
+
* Please refer to the Guide, under the provider's section you tried to
|
|
266
|
+
* link, and make sure you pass in the correct parameter to the credential
|
|
267
|
+
* method.</dd>
|
|
268
|
+
* <dt>auth/invalid-email</dt>
|
|
269
|
+
* <dd>Thrown if the email used in a
|
|
270
|
+
* {@link firebase.auth.EmailAuthProvider#credential} is invalid.</dd>
|
|
271
|
+
* <dt>auth/wrong-password</dt>
|
|
272
|
+
* <dd>Thrown if the password used in a
|
|
273
|
+
* {@link firebase.auth.EmailAuthProvider#credential} is not correct or when
|
|
274
|
+
* the user associated with the email does not have a password.</dd>
|
|
275
|
+
* </dl>
|
|
276
|
+
*
|
|
277
|
+
* @param {!firebase.auth.AuthCredential} credential
|
|
278
|
+
* @return {!firebase.Promise<void>}
|
|
279
|
+
*/
|
|
280
|
+
firebase.User.prototype.reauthenticate = function(credential) {};
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Updates the user's email address.
|
|
285
|
+
*
|
|
286
|
+
* An email will be sent to the original email address (if it was set) that
|
|
287
|
+
* allows to revoke the email address change, in order to protect them from
|
|
288
|
+
* account hijacking.
|
|
289
|
+
*
|
|
290
|
+
* <b>Important:</b> this is a security sensitive operation that requires the
|
|
291
|
+
* user to have recently signed in. If this requirement isn't met, ask the user
|
|
292
|
+
* to authenticate again and then call {@link firebase.User#reauthenticate}.
|
|
293
|
+
*
|
|
294
|
+
* <h4>Error Codes</h4>
|
|
295
|
+
* <dl>
|
|
296
|
+
* <dt>auth/invalid-email</dt>
|
|
297
|
+
* <dd>Thrown if the email used is invalid.</dd>
|
|
298
|
+
* <dt>auth/email-already-in-use</dt>
|
|
299
|
+
* <dd>Thrown if the email is already used by another user.</dd>
|
|
300
|
+
* <dt>auth/requires-recent-login</dt>
|
|
301
|
+
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|
302
|
+
* threshold. Use {@link firebase.User#reauthenticate} to resolve. This does
|
|
303
|
+
* not apply if the user is anonymous.</dd>
|
|
304
|
+
* </dl>
|
|
305
|
+
*
|
|
306
|
+
* @param {string} newEmail The new email address.
|
|
307
|
+
* @return {!firebase.Promise<void>}
|
|
308
|
+
*/
|
|
309
|
+
firebase.User.prototype.updateEmail = function(newEmail) {};
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Updates the user's password.
|
|
314
|
+
*
|
|
315
|
+
* <b>Important:</b> this is a security sensitive operation that requires the
|
|
316
|
+
* user to have recently signed in. If this requirement isn't met, ask the user
|
|
317
|
+
* to authenticate again and then call {@link firebase.User#reauthenticate}.
|
|
318
|
+
*
|
|
319
|
+
* <h4>Error Codes</h4>
|
|
320
|
+
* <dl>
|
|
321
|
+
* <dt>auth/weak-password</dt>
|
|
322
|
+
* <dd>Thrown if the password is not strong enough.</dd>
|
|
323
|
+
* <dt>auth/requires-recent-login</dt>
|
|
324
|
+
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|
325
|
+
* threshold. Use {@link firebase.User#reauthenticate} to resolve. This does
|
|
326
|
+
* not apply if the user is anonymous.</dd>
|
|
327
|
+
* </dl>
|
|
328
|
+
*
|
|
329
|
+
* @param {string} newPassword
|
|
330
|
+
* @return {!firebase.Promise<void>}
|
|
331
|
+
*/
|
|
332
|
+
firebase.User.prototype.updatePassword = function(newPassword) {};
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Updates a user's profile data.
|
|
337
|
+
*
|
|
338
|
+
* @example
|
|
339
|
+
* // Updates the user attributes:
|
|
340
|
+
* user.updateProfile({
|
|
341
|
+
* displayName: "Jane Q. User",
|
|
342
|
+
* photoURL: "https://example.com/jane-q-user/profile.jpg"
|
|
343
|
+
* }).then(function() {
|
|
344
|
+
* // Profile updated successfully!
|
|
345
|
+
* // "Jane Q. User"
|
|
346
|
+
* var displayName = user.displayName;
|
|
347
|
+
* // "https://example.com/jane-q-user/profile.jpg"
|
|
348
|
+
* var photoURL = user.photoURL;
|
|
349
|
+
* }, function(error) {
|
|
350
|
+
* // An error happened.
|
|
351
|
+
* });
|
|
352
|
+
*
|
|
353
|
+
* // Passing a null value will delete the current attribute's value, but not
|
|
354
|
+
* // passing a property won't change the current attribute's value:
|
|
355
|
+
* // Let's say we're using the same user than before, after the update.
|
|
356
|
+
* user.updateProfile({photoURL: null}).then(function() {
|
|
357
|
+
* // Profile updated successfully!
|
|
358
|
+
* // "Jane Q. User", hasn't changed.
|
|
359
|
+
* var displayName = user.displayName;
|
|
360
|
+
* // Now, this is null.
|
|
361
|
+
* var photoURL = user.photoURL;
|
|
362
|
+
* }, function(error) {
|
|
363
|
+
* // An error happened.
|
|
364
|
+
* });
|
|
365
|
+
*
|
|
366
|
+
* @param {!{displayName: ?string, photoURL: ?string}} profile The profile's
|
|
367
|
+
* displayName and photoURL to update.
|
|
368
|
+
* @return {!firebase.Promise<void>}
|
|
369
|
+
*/
|
|
370
|
+
firebase.User.prototype.updateProfile = function(profile) {};
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Deletes and signs out the user.
|
|
375
|
+
*
|
|
376
|
+
* <b>Important:</b> this is a security sensitive operation that requires the
|
|
377
|
+
* user to have recently signed in. If this requirement isn't met, ask the user
|
|
378
|
+
* to authenticate again and then call {@link firebase.User#reauthenticate}.
|
|
379
|
+
*
|
|
380
|
+
* <h4>Error Codes</h4>
|
|
381
|
+
* <dl>
|
|
382
|
+
* <dt>auth/requires-recent-login</dt>
|
|
383
|
+
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|
384
|
+
* threshold. Use {@link firebase.User#reauthenticate} to resolve. This does
|
|
385
|
+
* not apply if the user is anonymous.</dd>
|
|
386
|
+
* </dl>
|
|
387
|
+
*
|
|
388
|
+
* @return {!firebase.Promise<void>}
|
|
389
|
+
*/
|
|
390
|
+
firebase.User.prototype.delete = function() {};
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Returns a JSON-serializable representation of this object.
|
|
395
|
+
*
|
|
396
|
+
* @return {!Object} A JSON-serializable representation of this object.
|
|
397
|
+
*/
|
|
398
|
+
firebase.User.prototype.toJSON = function() {};
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Checks a password reset code sent to the user by email or other out-of-band
|
|
403
|
+
* mechanism.
|
|
404
|
+
*
|
|
405
|
+
* Returns the user's email address if valid.
|
|
406
|
+
*
|
|
407
|
+
* <h4>Error Codes</h4>
|
|
408
|
+
* <dl>
|
|
409
|
+
* <dt>auth/expired-action-code</dt>
|
|
410
|
+
* <dd>Thrown if the password reset code has expired.</dd>
|
|
411
|
+
* <dt>auth/invalid-action-code</dt>
|
|
412
|
+
* <dd>Thrown if the password reset code is invalid. This can happen if the code
|
|
413
|
+
* is malformed or has already been used.</dd>
|
|
414
|
+
* <dt>auth/user-disabled</dt>
|
|
415
|
+
* <dd>Thrown if the user corresponding to the given password reset code has
|
|
416
|
+
* been disabled.</dd>
|
|
417
|
+
* <dt>auth/user-not-found</dt>
|
|
418
|
+
* <dd>Thrown if there is no user corresponding to the password reset code. This
|
|
419
|
+
* may have happened if the user was deleted between when the code was
|
|
420
|
+
* issued and when this method was called.</dd>
|
|
421
|
+
* </dl>
|
|
422
|
+
*
|
|
423
|
+
* @param {string} code A verification code sent to the user.
|
|
424
|
+
* @return {!firebase.Promise<string>}
|
|
425
|
+
*/
|
|
426
|
+
firebase.auth.Auth.prototype.verifyPasswordResetCode = function(code) {};
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* A response from {@link firebase.auth.Auth#checkActionCode}.
|
|
431
|
+
*
|
|
432
|
+
* @interface
|
|
433
|
+
*/
|
|
434
|
+
firebase.auth.ActionCodeInfo = function() {};
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* The email address associated with the action code.
|
|
439
|
+
*
|
|
440
|
+
* @typedef {{
|
|
441
|
+
* email: string
|
|
442
|
+
* }}
|
|
443
|
+
*/
|
|
444
|
+
firebase.auth.ActionCodeInfo.prototype.data;
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Checks a verification code sent to the user by email or other out-of-band
|
|
449
|
+
* mechanism.
|
|
450
|
+
*
|
|
451
|
+
* Returns metadata about the code.
|
|
452
|
+
*
|
|
453
|
+
* <h4>Error Codes</h4>
|
|
454
|
+
* <dl>
|
|
455
|
+
* <dt>auth/expired-action-code</dt>
|
|
456
|
+
* <dd>Thrown if the action code has expired.</dd>
|
|
457
|
+
* <dt>auth/invalid-action-code</dt>
|
|
458
|
+
* <dd>Thrown if the action code is invalid. This can happen if the code is
|
|
459
|
+
* malformed or has already been used.</dd>
|
|
460
|
+
* <dt>auth/user-disabled</dt>
|
|
461
|
+
* <dd>Thrown if the user corresponding to the given action code has been
|
|
462
|
+
* disabled.</dd>
|
|
463
|
+
* <dt>auth/user-not-found</dt>
|
|
464
|
+
* <dd>Thrown if there is no user corresponding to the action code. This may
|
|
465
|
+
* have happened if the user was deleted between when the action code was
|
|
466
|
+
* issued and when this method was called.</dd>
|
|
467
|
+
* </dl>
|
|
468
|
+
*
|
|
469
|
+
* @param {string} code A verification code sent to the user.
|
|
470
|
+
* @return {!firebase.Promise<!firebase.auth.ActionCodeInfo>}
|
|
471
|
+
*/
|
|
472
|
+
firebase.auth.Auth.prototype.checkActionCode = function(code) {};
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Applies a verification code sent to the user by email or other out-of-band
|
|
477
|
+
* mechanism.
|
|
478
|
+
*
|
|
479
|
+
* <h4>Error Codes</h4>
|
|
480
|
+
* <dl>
|
|
481
|
+
* <dt>auth/expired-action-code</dt>
|
|
482
|
+
* <dd>Thrown if the action code has expired.</dd>
|
|
483
|
+
* <dt>auth/invalid-action-code</dt>
|
|
484
|
+
* <dd>Thrown if the action code is invalid. This can happen if the code is
|
|
485
|
+
* malformed or has already been used.</dd>
|
|
486
|
+
* <dt>auth/user-disabled</dt>
|
|
487
|
+
* <dd>Thrown if the user corresponding to the given action code has been
|
|
488
|
+
* disabled.</dd>
|
|
489
|
+
* <dt>auth/user-not-found</dt>
|
|
490
|
+
* <dd>Thrown if there is no user corresponding to the action code. This may
|
|
491
|
+
* have happened if the user was deleted between when the action code was
|
|
492
|
+
* issued and when this method was called.</dd>
|
|
493
|
+
* </dl>
|
|
494
|
+
*
|
|
495
|
+
* @param {string} code A verification code sent to the user.
|
|
496
|
+
* @return {!firebase.Promise<void>}
|
|
497
|
+
*/
|
|
498
|
+
firebase.auth.Auth.prototype.applyActionCode = function(code) {};
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* The Firebase Auth service interface.
|
|
502
|
+
*
|
|
503
|
+
* Do not call this constructor directly. Instead, use
|
|
504
|
+
* {@link firebase.auth `firebase.auth()`}.
|
|
505
|
+
*
|
|
506
|
+
* See
|
|
507
|
+
* {@link https://firebase.google.com/docs/auth/ Firebase Authentication}
|
|
508
|
+
* for a full guide on how to use the Firebase Auth service.
|
|
509
|
+
*
|
|
510
|
+
* @interface
|
|
511
|
+
*/
|
|
512
|
+
firebase.auth.Auth = function() {};
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* The {@link firebase.app.App app} associated with the `Auth` service
|
|
516
|
+
* instance.
|
|
517
|
+
*
|
|
518
|
+
* @example
|
|
519
|
+
* var app = auth.app;
|
|
520
|
+
*
|
|
521
|
+
* @type {!firebase.app.App}
|
|
522
|
+
*/
|
|
523
|
+
firebase.auth.Auth.prototype.app;
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* The currently signed-in user (or null).
|
|
527
|
+
*
|
|
528
|
+
* @type {firebase.User|null}
|
|
529
|
+
*/
|
|
530
|
+
firebase.auth.Auth.prototype.currentUser;
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Creates a new user account associated with the specified email address and
|
|
534
|
+
* password.
|
|
535
|
+
*
|
|
536
|
+
* On successful creation of the user account, this user will also be
|
|
537
|
+
* signed in to your application.
|
|
538
|
+
*
|
|
539
|
+
* User account creation can fail if the account already exists or the password
|
|
540
|
+
* is invalid.
|
|
541
|
+
*
|
|
542
|
+
* Note: The email address acts as a unique identifier for the user and
|
|
543
|
+
* enables an email-based password reset. This function will create
|
|
544
|
+
* a new user account and set the initial user password.
|
|
545
|
+
*
|
|
546
|
+
* <h4>Error Codes</h4>
|
|
547
|
+
* <dl>
|
|
548
|
+
* <dt>auth/email-already-in-use</dt>
|
|
549
|
+
* <dd>Thrown if there already exists an account with the given email
|
|
550
|
+
* address.</dd>
|
|
551
|
+
* <dt>auth/invalid-email</dt>
|
|
552
|
+
* <dd>Thrown if the email address is not valid.</dd>
|
|
553
|
+
* <dt>auth/operation-not-allowed</dt>
|
|
554
|
+
* <dd>Thrown if email/password accounts are not enabled. Enable email/password
|
|
555
|
+
* accounts in the Firebase Console, under the Auth tab.</dd>
|
|
556
|
+
* <dt>auth/weak-password</dt>
|
|
557
|
+
* <dd>Thrown if the password is not strong enough.</dd>
|
|
558
|
+
* </dl>
|
|
559
|
+
*
|
|
560
|
+
* @example
|
|
561
|
+
* firebase.auth().createUserWithEmailAndPassword(email, password)
|
|
562
|
+
* .catch(function(error) {
|
|
563
|
+
* // Handle Errors here.
|
|
564
|
+
* var errorCode = error.code;
|
|
565
|
+
* var errorMessage = error.message;
|
|
566
|
+
* if (errorCode == 'auth/weak-password') {
|
|
567
|
+
* alert('The password is too weak.');
|
|
568
|
+
* } else {
|
|
569
|
+
* alert(errorMessage);
|
|
570
|
+
* }
|
|
571
|
+
* console.log(error);
|
|
572
|
+
* });
|
|
573
|
+
*
|
|
574
|
+
* @param {string} email The user's email address.
|
|
575
|
+
* @param {string} password The user's chosen password.
|
|
576
|
+
* @return {!firebase.Promise<!firebase.User>}
|
|
577
|
+
*/
|
|
578
|
+
firebase.auth.Auth.prototype.createUserWithEmailAndPassword =
|
|
579
|
+
function(email, password) {};
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Gets the list of provider IDs that can be used to sign in for the given email
|
|
584
|
+
* address. Useful for an "identifier-first" sign-in flow.
|
|
585
|
+
*
|
|
586
|
+
* <h4>Error Codes</h4>
|
|
587
|
+
* <dl>
|
|
588
|
+
* <dt>auth/invalid-email</dt>
|
|
589
|
+
* <dd>Thrown if the email address is not valid.</dd>
|
|
590
|
+
* </dl>
|
|
591
|
+
*
|
|
592
|
+
* @param {string} email An email address.
|
|
593
|
+
* @return {!firebase.Promise<!Array<string>>}
|
|
594
|
+
*/
|
|
595
|
+
firebase.auth.Auth.prototype.fetchProvidersForEmail = function(email) {};
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* Adds an observer for auth state changes.
|
|
600
|
+
*
|
|
601
|
+
* @example
|
|
602
|
+
* firebase.auth().onAuthStateChanged(function(user) {
|
|
603
|
+
* if (user) {
|
|
604
|
+
* // User is signed in.
|
|
605
|
+
* }
|
|
606
|
+
* });
|
|
607
|
+
*
|
|
608
|
+
* @param {!Object|function(?firebase.User)}
|
|
609
|
+
* nextOrObserver An observer object or a function triggered on change.
|
|
610
|
+
* @param {function(!firebase.auth.Error)=} error Optional A function
|
|
611
|
+
* triggered on auth error.
|
|
612
|
+
* @param {function()=} completed Optional A function triggered when the
|
|
613
|
+
* observer is removed.
|
|
614
|
+
* @return {!function()} The unsubscribe function for the observer.
|
|
615
|
+
*/
|
|
616
|
+
firebase.auth.Auth.prototype.onAuthStateChanged = function(
|
|
617
|
+
nextOrObserver, error, completed) {};
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
/**
|
|
621
|
+
* Sends a password reset email to the given email address.
|
|
622
|
+
*
|
|
623
|
+
* To complete the password reset, call
|
|
624
|
+
* {@link firebase.auth.Auth#confirmPasswordReset} with the code supplied in the
|
|
625
|
+
* email sent to the user, along with the new password specified by the user.
|
|
626
|
+
*
|
|
627
|
+
* <h4>Error Codes</h4>
|
|
628
|
+
* <dl>
|
|
629
|
+
* <dt>auth/invalid-email</dt>
|
|
630
|
+
* <dd>Thrown if the email address is not valid.</dd>
|
|
631
|
+
* <dt>auth/user-not-found</dt>
|
|
632
|
+
* <dd>Thrown if there is no user corresponding to the email address.</dd>
|
|
633
|
+
* </dl>
|
|
634
|
+
*
|
|
635
|
+
* @param {string} email The email address with the password to be reset.
|
|
636
|
+
* @return {!firebase.Promise<void>}
|
|
637
|
+
*/
|
|
638
|
+
firebase.auth.Auth.prototype.sendPasswordResetEmail = function(email) {};
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* Completes the password reset process, given a confirmation code and new
|
|
643
|
+
* password.
|
|
644
|
+
*
|
|
645
|
+
* <h4>Error Codes</h4>
|
|
646
|
+
* <dl>
|
|
647
|
+
* <dt>auth/expired-action-code</dt>
|
|
648
|
+
* <dd>Thrown if the password reset code has expired.</dd>
|
|
649
|
+
* <dt>auth/invalid-action-code</dt>
|
|
650
|
+
* <dd>Thrown if the password reset code is invalid. This can happen if the
|
|
651
|
+
* code is malformed or has already been used.</dd>
|
|
652
|
+
* <dt>auth/user-disabled</dt>
|
|
653
|
+
* <dd>Thrown if the user corresponding to the given password reset code has
|
|
654
|
+
* been disabled.</dd>
|
|
655
|
+
* <dt>auth/user-not-found</dt>
|
|
656
|
+
* <dd>Thrown if there is no user corresponding to the password reset code. This
|
|
657
|
+
* may have happened if the user was deleted between when the code was
|
|
658
|
+
* issued and when this method was called.</dd>
|
|
659
|
+
* <dt>auth/weak-password</dt>
|
|
660
|
+
* <dd>Thrown if the new password is not strong enough.</dd>
|
|
661
|
+
* </dl>
|
|
662
|
+
*
|
|
663
|
+
* @param {string} code The confirmation code send via email to the user.
|
|
664
|
+
* @param {string} newPassword The new password.
|
|
665
|
+
* @return {!firebase.Promise<void>}
|
|
666
|
+
*/
|
|
667
|
+
firebase.auth.Auth.prototype.confirmPasswordReset =
|
|
668
|
+
function(code, newPassword) {};
|
|
669
|
+
|
|
670
|
+
/**
|
|
671
|
+
* Asynchronously signs in with the given credentials.
|
|
672
|
+
*
|
|
673
|
+
* <h4>Error Codes</h4>
|
|
674
|
+
* <dl>
|
|
675
|
+
* <dt>auth/account-exists-with-different-credential</dt>
|
|
676
|
+
* <dd>Thrown if there already exists an account with the email address
|
|
677
|
+
* asserted by the credential. Resolve this by calling
|
|
678
|
+
* {@link firebase.auth.Auth#fetchProvidersForEmail} and then asking the
|
|
679
|
+
* user to sign in using one of the returned providers. Once the user is
|
|
680
|
+
* signed in, the original credential can be linked to the user with
|
|
681
|
+
* {@link firebase.User#link}.</dd>
|
|
682
|
+
* <dt>auth/invalid-credential</dt>
|
|
683
|
+
* <dd>Thrown if the credential is malformed or has expired.</dd>
|
|
684
|
+
* <dt>auth/operation-not-allowed</dt>
|
|
685
|
+
* <dd>Thrown if the type of account corresponding to the credential
|
|
686
|
+
* is not enabled. Enable the account type in the Firebase Console, under
|
|
687
|
+
* the Auth tab.</dd>
|
|
688
|
+
* <dt>auth/user-disabled</dt>
|
|
689
|
+
* <dd>Thrown if the user corresponding to the given credential has been
|
|
690
|
+
* disabled.</dd>
|
|
691
|
+
* <dt>auth/user-not-found</dt>
|
|
692
|
+
* <dd>Thrown if signing in with a credential from
|
|
693
|
+
* {@link firebase.auth.EmailAuthProvider#credential} and there is no user
|
|
694
|
+
* corresponding to the given email. </dd>
|
|
695
|
+
* <dt>auth/wrong-password</dt>
|
|
696
|
+
* <dd>Thrown if signing in with a credential from
|
|
697
|
+
* {@link firebase.auth.EmailAuthProvider#credential} and the password is
|
|
698
|
+
* invalid for the given email, or if the account corresponding to the email
|
|
699
|
+
* does not have a password set.</dd>
|
|
700
|
+
* </dl>
|
|
701
|
+
*
|
|
702
|
+
* @example
|
|
703
|
+
* firebase.auth().signInWithCredential(credential).catch(function(error) {
|
|
704
|
+
* // Handle Errors here.
|
|
705
|
+
* var errorCode = error.code;
|
|
706
|
+
* var errorMessage = error.message;
|
|
707
|
+
* // The email of the user's account used.
|
|
708
|
+
* var email = error.email;
|
|
709
|
+
* // The firebase.auth.AuthCredential type that was used.
|
|
710
|
+
* var credential = error.credential;
|
|
711
|
+
* if (errorCode === 'auth/account-exists-with-different-credential') {
|
|
712
|
+
* alert('Email already associated with another account.');
|
|
713
|
+
* // Handle account linking here, if using.
|
|
714
|
+
* } else {
|
|
715
|
+
* console.error(error);
|
|
716
|
+
* }
|
|
717
|
+
* });
|
|
718
|
+
*
|
|
719
|
+
* @param {!firebase.auth.AuthCredential} credential The auth credential.
|
|
720
|
+
* @return {!firebase.Promise<!firebase.User>}
|
|
721
|
+
*/
|
|
722
|
+
firebase.auth.Auth.prototype.signInWithCredential = function(credential) {};
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* Asynchronously signs in using a custom token.
|
|
727
|
+
*
|
|
728
|
+
* Custom tokens are used to integrate Firebase Auth with existing auth systems,
|
|
729
|
+
* and must be generated by the auth backend.
|
|
730
|
+
*
|
|
731
|
+
* Fails with an error if the token is invalid, expired, or not accepted by the
|
|
732
|
+
* Firebase Auth service.
|
|
733
|
+
*
|
|
734
|
+
* <h4>Error Codes</h4>
|
|
735
|
+
* <dl>
|
|
736
|
+
* <dt>auth/custom-token-mismatch</dt>
|
|
737
|
+
* <dd>Thrown if the custom token is for a different Firebase App.</dd>
|
|
738
|
+
* <dt>auth/invalid-custom-token</dt>
|
|
739
|
+
* <dd>Thrown if the custom token format is incorrect.</dd>
|
|
740
|
+
* </dl>
|
|
741
|
+
*
|
|
742
|
+
* @example
|
|
743
|
+
* firebase.auth().signInWithCustomToken(token).catch(function(error) {
|
|
744
|
+
* // Handle Errors here.
|
|
745
|
+
* var errorCode = error.code;
|
|
746
|
+
* var errorMessage = error.message;
|
|
747
|
+
* if (errorCode === 'auth/invalid-custom-token') {
|
|
748
|
+
* alert('The token you provided is not valid.');
|
|
749
|
+
* } else {
|
|
750
|
+
* console.error(error);
|
|
751
|
+
* }
|
|
752
|
+
* });
|
|
753
|
+
*
|
|
754
|
+
* @param {string} token The custom token to sign in with.
|
|
755
|
+
* @return {!firebase.Promise<!firebase.User>}
|
|
756
|
+
*/
|
|
757
|
+
firebase.auth.Auth.prototype.signInWithCustomToken = function(token) {};
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
/**
|
|
761
|
+
* Asynchronously signs in using an email and password.
|
|
762
|
+
*
|
|
763
|
+
* Fails with an error if the email address and password do not match.
|
|
764
|
+
*
|
|
765
|
+
* Note: The user's password is NOT the password used to access the user's email
|
|
766
|
+
* account. The email address serves as a unique identifier for the user, and
|
|
767
|
+
* the password is used to access the user's account in your Firebase project.
|
|
768
|
+
*
|
|
769
|
+
* See also: {@link firebase.auth.Auth#createUserWithEmailAndPassword}.
|
|
770
|
+
*
|
|
771
|
+
* <h4>Error Codes</h4>
|
|
772
|
+
* <dl>
|
|
773
|
+
* <dt>auth/invalid-email</dt>
|
|
774
|
+
* <dd>Thrown if the email address is not valid.</dd>
|
|
775
|
+
* <dt>auth/user-disabled</dt>
|
|
776
|
+
* <dd>Thrown if the user corresponding to the given email has been
|
|
777
|
+
* disabled.</dd>
|
|
778
|
+
* <dt>auth/user-not-found</dt>
|
|
779
|
+
* <dd>Thrown if there is no user corresponding to the given email.</dd>
|
|
780
|
+
* <dt>auth/wrong-password</dt>
|
|
781
|
+
* <dd>Thrown if the password is invalid for the given email, or the account
|
|
782
|
+
* corresponding to the email does not have a password set.</dd>
|
|
783
|
+
* </dl>
|
|
784
|
+
*
|
|
785
|
+
* @example
|
|
786
|
+
* firebase.auth().signInWithEmailAndPassword(email, password)
|
|
787
|
+
* .catch(function(error) {
|
|
788
|
+
* // Handle Errors here.
|
|
789
|
+
* var errorCode = error.code;
|
|
790
|
+
* var errorMessage = error.message;
|
|
791
|
+
* if (errorCode === 'auth/wrong-password') {
|
|
792
|
+
* alert('Wrong password.');
|
|
793
|
+
* } else {
|
|
794
|
+
* alert(errorMessage);
|
|
795
|
+
* }
|
|
796
|
+
* console.log(error);
|
|
797
|
+
* });
|
|
798
|
+
*
|
|
799
|
+
* @param {string} email The users email address.
|
|
800
|
+
* @param {string} password The users password.
|
|
801
|
+
* @return {!firebase.Promise<!firebase.User>}
|
|
802
|
+
*/
|
|
803
|
+
firebase.auth.Auth.prototype.signInWithEmailAndPassword =
|
|
804
|
+
function(email, password) {};
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
/**
|
|
808
|
+
* Asynchronously signs in as an anonymous user.
|
|
809
|
+
*
|
|
810
|
+
* If there is already an anonymous user signed in, that user will be returned;
|
|
811
|
+
* otherwise, a new anonymous user identity will be created and returned.
|
|
812
|
+
*
|
|
813
|
+
* <h4>Error Codes</h4>
|
|
814
|
+
* <dl>
|
|
815
|
+
* <dt>auth/operation-not-allowed</dt>
|
|
816
|
+
* <dd>Thrown if anonymous accounts are not enabled. Enable anonymous accounts
|
|
817
|
+
* in the Firebase Console, under the Auth tab.</dd>
|
|
818
|
+
* </dl>
|
|
819
|
+
*
|
|
820
|
+
* @example
|
|
821
|
+
* firebase.auth().signInAnonymously().catch(function(error) {
|
|
822
|
+
* // Handle Errors here.
|
|
823
|
+
* var errorCode = error.code;
|
|
824
|
+
* var errorMessage = error.message;
|
|
825
|
+
*
|
|
826
|
+
* if (errorCode === 'auth/operation-not-allowed') {
|
|
827
|
+
* alert('You must enable Anonymous auth in the Firebase Console.');
|
|
828
|
+
* } else {
|
|
829
|
+
* console.error(error);
|
|
830
|
+
* }
|
|
831
|
+
* });
|
|
832
|
+
*
|
|
833
|
+
* @return {!firebase.Promise<!firebase.User>}
|
|
834
|
+
*/
|
|
835
|
+
firebase.auth.Auth.prototype.signInAnonymously = function() {};
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
/**
|
|
839
|
+
* A structure containing a User and an AuthCredential.
|
|
840
|
+
*
|
|
841
|
+
* @typedef {{
|
|
842
|
+
* user: ?firebase.User,
|
|
843
|
+
* credential: ?firebase.auth.AuthCredential
|
|
844
|
+
* }}
|
|
845
|
+
*/
|
|
846
|
+
firebase.auth.UserCredential;
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* Signs out the current user.
|
|
850
|
+
*
|
|
851
|
+
* @return {!firebase.Promise<void>}
|
|
852
|
+
*/
|
|
853
|
+
firebase.auth.Auth.prototype.signOut = function() {};
|
|
854
|
+
|
|
855
|
+
|
|
856
|
+
/**
|
|
857
|
+
* An authentication error.
|
|
858
|
+
* For method-specific error codes, refer to the specific methods in the
|
|
859
|
+
* documentation. For common error codes, check the reference below. Use {@link
|
|
860
|
+
* firebase.auth.Error#code} to get the specific error code. For a detailed
|
|
861
|
+
* message, use {@link firebase.auth.Error#message}.
|
|
862
|
+
* Errors with the code <strong>auth/account-exists-with-different-credential
|
|
863
|
+
* </strong> will have the additional fields <strong>email</strong> and <strong>
|
|
864
|
+
* credential</strong> which are needed to provide a way to resolve these
|
|
865
|
+
* specific errors. Refer to {@link firebase.auth.Auth#signInWithPopup} for more
|
|
866
|
+
* information.
|
|
867
|
+
*
|
|
868
|
+
* <h4>Common Error Codes</h4>
|
|
869
|
+
* <dl>
|
|
870
|
+
* <dt>auth/app-deleted</dt>
|
|
871
|
+
* <dd>Thrown if the instance of FirebaseApp has been deleted.</dd>
|
|
872
|
+
* <dt>auth/app-not-authorized</dt>
|
|
873
|
+
* <dd>Thrown if the app identified by the domain where it's hosted, is not
|
|
874
|
+
* authorized to use Firebase Authentication with the provided API key.
|
|
875
|
+
* Review your key configuration in the Google API console.</dd>
|
|
876
|
+
* <dt>auth/argument-error</dt>
|
|
877
|
+
* <dd>Thrown if a method is called with incorrect arguments.</dd>
|
|
878
|
+
* <dt>auth/invalid-api-key</dt>
|
|
879
|
+
* <dd>Thrown if the provided API key is invalid. Please check that you have
|
|
880
|
+
* copied it correctly from the Firebase Console.</dd>
|
|
881
|
+
* <dt>auth/invalid-user-token</dt>
|
|
882
|
+
* <dd>Thrown if the user's credential is no longer valid. The user must sign in
|
|
883
|
+
* again.</dd>
|
|
884
|
+
* <dt>auth/network-request-failed</dt>
|
|
885
|
+
* <dd>Thrown if a network error (such as timeout, interrupted connection or
|
|
886
|
+
* unreachable host) has occurred.</dd>
|
|
887
|
+
* <dt>auth/operation-not-allowed</dt>
|
|
888
|
+
* <dd>Thrown if you have not enabled the provider in the Firebase Console. Go
|
|
889
|
+
* to the Firebase Console for your project, in the Auth section and the
|
|
890
|
+
* <strong>Sign in Method</strong> tab and configure the provider.</dd>
|
|
891
|
+
* <dt>auth/requires-recent-login</dt>
|
|
892
|
+
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|
893
|
+
* threshold. Use {@link firebase.User#reauthenticate} to resolve. This does
|
|
894
|
+
* not apply if the user is anonymous.</dd>
|
|
895
|
+
* <dt>auth/too-many-requests</dt>
|
|
896
|
+
* <dd>Thrown if requests are blocked from a device due to unusual activity.
|
|
897
|
+
* Trying again after some delay would unblock.</dd>
|
|
898
|
+
* <dt>auth/unauthorized-domain</dt>
|
|
899
|
+
* <dd>Thrown if the app domain is not authorized for OAuth operations for your
|
|
900
|
+
* Firebase project. Edit the list of authorized domains from the Firebase
|
|
901
|
+
* console.</dd>
|
|
902
|
+
* <dt>auth/user-disabled</dt>
|
|
903
|
+
* <dd>Thrown if the user account has been disabled by an administrator.
|
|
904
|
+
* Accounts can be enabled or disabled in the Firebase Console, the Auth
|
|
905
|
+
* section and Users subsection.</dd>
|
|
906
|
+
* <dt>auth/user-token-expired</dt>
|
|
907
|
+
* <dd>Thrown if the user's credential has expired. This could also be thrown if
|
|
908
|
+
* a user has been deleted. Prompting the user to sign in again should
|
|
909
|
+
* resolve this for either case.</dd>
|
|
910
|
+
* <dt>auth/web-storage-unsupported</dt>
|
|
911
|
+
* <dd>Thrown if the browser does not support web storage or if the user
|
|
912
|
+
* disables them.</dd>
|
|
913
|
+
* </dl>
|
|
914
|
+
*
|
|
915
|
+
* @interface
|
|
916
|
+
*/
|
|
917
|
+
firebase.auth.Error = function() {};
|
|
918
|
+
|
|
919
|
+
/**
|
|
920
|
+
* Unique error code.
|
|
921
|
+
*
|
|
922
|
+
* @type {string}
|
|
923
|
+
*/
|
|
924
|
+
firebase.auth.Error.prototype.code;
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* Complete error message.
|
|
928
|
+
*
|
|
929
|
+
* @type {string}
|
|
930
|
+
*/
|
|
931
|
+
firebase.auth.Error.prototype.message;
|
|
932
|
+
|
|
933
|
+
|
|
934
|
+
//
|
|
935
|
+
// List of Auth Providers.
|
|
936
|
+
//
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
/**
|
|
940
|
+
* Interface that represents an auth provider.
|
|
941
|
+
*
|
|
942
|
+
* @interface
|
|
943
|
+
*/
|
|
944
|
+
firebase.auth.AuthProvider = function() {};
|
|
945
|
+
|
|
946
|
+
/** @type {string} */
|
|
947
|
+
firebase.auth.AuthProvider.prototype.providerId;
|
|
948
|
+
|
|
949
|
+
/**
|
|
950
|
+
* Facebook auth provider.
|
|
951
|
+
*
|
|
952
|
+
* @example
|
|
953
|
+
* // Sign in using a redirect.
|
|
954
|
+
* firebase.auth().getRedirectResult().then(function(result) {
|
|
955
|
+
* if (result.credential) {
|
|
956
|
+
* // This gives you a Google Access Token.
|
|
957
|
+
* var token = result.credential.accessToken;
|
|
958
|
+
* }
|
|
959
|
+
* var user = result.user;
|
|
960
|
+
* })
|
|
961
|
+
* // Start a sign in process for an unauthenticated user.
|
|
962
|
+
* var provider = new firebase.auth.FacebookAuthProvider();
|
|
963
|
+
* provider.addScope('user_birthday');
|
|
964
|
+
* firebase.auth().signInWithRedirect(provider);
|
|
965
|
+
*
|
|
966
|
+
* @example
|
|
967
|
+
* // Sign in using a popup.
|
|
968
|
+
* var provider = new firebase.auth.FacebookAuthProvider();
|
|
969
|
+
* provider.addScope('user_birthday');
|
|
970
|
+
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|
971
|
+
* // This gives you a Facebook Access Token.
|
|
972
|
+
* var token = result.credential.accessToken;
|
|
973
|
+
* // The signed-in user info.
|
|
974
|
+
* var user = result.user;
|
|
975
|
+
* });
|
|
976
|
+
*
|
|
977
|
+
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|
978
|
+
* changes.
|
|
979
|
+
* @constructor
|
|
980
|
+
* @implements {firebase.auth.AuthProvider}
|
|
981
|
+
*/
|
|
982
|
+
firebase.auth.FacebookAuthProvider = function() {};
|
|
983
|
+
|
|
984
|
+
/** @type {string} */
|
|
985
|
+
firebase.auth.FacebookAuthProvider.PROVIDER_ID;
|
|
986
|
+
|
|
987
|
+
/**
|
|
988
|
+
* @example
|
|
989
|
+
* var cred = firebase.auth.FacebookAuthProvider.credential(
|
|
990
|
+
* // `event` from the Facebook auth.authResponseChange callback.
|
|
991
|
+
* event.authResponse.accessToken
|
|
992
|
+
* );
|
|
993
|
+
*
|
|
994
|
+
* @param {string} token Facebook access token.
|
|
995
|
+
* @return {!firebase.auth.AuthCredential} The auth provider credential.
|
|
996
|
+
*/
|
|
997
|
+
firebase.auth.FacebookAuthProvider.credential = function(token) {};
|
|
998
|
+
|
|
999
|
+
/** @type {string} */
|
|
1000
|
+
firebase.auth.FacebookAuthProvider.prototype.providerId;
|
|
1001
|
+
|
|
1002
|
+
/**
|
|
1003
|
+
* @param {string} scope Facebook OAuth scope.
|
|
1004
|
+
*/
|
|
1005
|
+
firebase.auth.FacebookAuthProvider.prototype.addScope = function(scope) {};
|
|
1006
|
+
|
|
1007
|
+
/**
|
|
1008
|
+
* Sets the OAuth custom parameters to pass in a Facebook OAuth request for
|
|
1009
|
+
* popup and redirect sign-in operations.
|
|
1010
|
+
* Valid parameters include 'auth_type', 'display' and 'locale'.
|
|
1011
|
+
* For a detailed list, check the
|
|
1012
|
+
* {@link https://goo.gl/pve4fo Facebook}
|
|
1013
|
+
* documentation.
|
|
1014
|
+
* Reserved required OAuth 2.0 parameters such as 'client_id', 'redirect_uri',
|
|
1015
|
+
* 'scope', 'response_type' and 'state' are not allowed and will be ignored.
|
|
1016
|
+
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|
1017
|
+
* in the OAuth request.
|
|
1018
|
+
*/
|
|
1019
|
+
firebase.auth.FacebookAuthProvider.prototype.setCustomParameters =
|
|
1020
|
+
function(customOAuthParameters) {};
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
/**
|
|
1024
|
+
* Github auth provider.
|
|
1025
|
+
*
|
|
1026
|
+
* GitHub requires an OAuth 2.0 redirect, so you can either handle the redirect
|
|
1027
|
+
* directly, or use the signInWithPopup handler:
|
|
1028
|
+
*
|
|
1029
|
+
* @example
|
|
1030
|
+
* // Using a redirect.
|
|
1031
|
+
* firebase.auth().getRedirectResult().then(function(result) {
|
|
1032
|
+
* if (result.credential) {
|
|
1033
|
+
* // This gives you a GitHub Access Token.
|
|
1034
|
+
* var token = result.credential.accessToken;
|
|
1035
|
+
* }
|
|
1036
|
+
* var user = result.user;
|
|
1037
|
+
* }).catch(function(error) {
|
|
1038
|
+
* // Handle Errors here.
|
|
1039
|
+
* var errorCode = error.code;
|
|
1040
|
+
* var errorMessage = error.message;
|
|
1041
|
+
* // The email of the user's account used.
|
|
1042
|
+
* var email = error.email;
|
|
1043
|
+
* // The firebase.auth.AuthCredential type that was used.
|
|
1044
|
+
* var credential = error.credential;
|
|
1045
|
+
* if (errorCode === 'auth/account-exists-with-different-credential') {
|
|
1046
|
+
* alert('You have signed up with a different provider for that email.');
|
|
1047
|
+
* // Handle linking here if your app allows it.
|
|
1048
|
+
* } else {
|
|
1049
|
+
* console.error(error);
|
|
1050
|
+
* }
|
|
1051
|
+
* });
|
|
1052
|
+
*
|
|
1053
|
+
* // Start a sign in process for an unauthenticated user.
|
|
1054
|
+
* var provider = new firebase.auth.GithubAuthProvider();
|
|
1055
|
+
* provider.addScope('repo');
|
|
1056
|
+
* firebase.auth().signInWithRedirect(provider);
|
|
1057
|
+
*
|
|
1058
|
+
* @example
|
|
1059
|
+
* // With popup.
|
|
1060
|
+
* var provider = new firebase.auth.GithubAuthProvider();
|
|
1061
|
+
* provider.addScope('repo');
|
|
1062
|
+
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|
1063
|
+
* // This gives you a GitHub Access Token.
|
|
1064
|
+
* var token = result.credential.accessToken;
|
|
1065
|
+
* // The signed-in user info.
|
|
1066
|
+
* var user = result.user;
|
|
1067
|
+
* }).catch(function(error) {
|
|
1068
|
+
* // Handle Errors here.
|
|
1069
|
+
* var errorCode = error.code;
|
|
1070
|
+
* var errorMessage = error.message;
|
|
1071
|
+
* // The email of the user's account used.
|
|
1072
|
+
* var email = error.email;
|
|
1073
|
+
* // The firebase.auth.AuthCredential type that was used.
|
|
1074
|
+
* var credential = error.credential;
|
|
1075
|
+
* if (errorCode === 'auth/account-exists-with-different-credential') {
|
|
1076
|
+
* alert('You have signed up with a different provider for that email.');
|
|
1077
|
+
* // Handle linking here if your app allows it.
|
|
1078
|
+
* } else {
|
|
1079
|
+
* console.error(error);
|
|
1080
|
+
* }
|
|
1081
|
+
* });
|
|
1082
|
+
*
|
|
1083
|
+
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|
1084
|
+
* changes.
|
|
1085
|
+
* @constructor
|
|
1086
|
+
* @implements {firebase.auth.AuthProvider}
|
|
1087
|
+
*/
|
|
1088
|
+
firebase.auth.GithubAuthProvider = function() {};
|
|
1089
|
+
|
|
1090
|
+
/** @type {string} */
|
|
1091
|
+
firebase.auth.GithubAuthProvider.PROVIDER_ID;
|
|
1092
|
+
|
|
1093
|
+
/**
|
|
1094
|
+
* @example
|
|
1095
|
+
* var cred = firebase.auth.FacebookAuthProvider.credential(
|
|
1096
|
+
* // `event` from the Facebook auth.authResponseChange callback.
|
|
1097
|
+
* event.authResponse.accessToken
|
|
1098
|
+
* );
|
|
1099
|
+
*
|
|
1100
|
+
* @param {string} token Github access token.
|
|
1101
|
+
* @return {!firebase.auth.AuthCredential} The auth provider credential.
|
|
1102
|
+
*/
|
|
1103
|
+
firebase.auth.GithubAuthProvider.credential = function(token) {};
|
|
1104
|
+
|
|
1105
|
+
/** @type {string} */
|
|
1106
|
+
firebase.auth.GithubAuthProvider.prototype.providerId;
|
|
1107
|
+
|
|
1108
|
+
/**
|
|
1109
|
+
* @param {string} scope Github OAuth scope.
|
|
1110
|
+
*/
|
|
1111
|
+
firebase.auth.GithubAuthProvider.prototype.addScope = function(scope) {};
|
|
1112
|
+
|
|
1113
|
+
/**
|
|
1114
|
+
* Sets the OAuth custom parameters to pass in a GitHub OAuth request for popup
|
|
1115
|
+
* and redirect sign-in operations.
|
|
1116
|
+
* Valid parameters include 'allow_signup'.
|
|
1117
|
+
* For a detailed list, check the
|
|
1118
|
+
* {@link https://developer.github.com/v3/oauth/ GitHub} documentation.
|
|
1119
|
+
* Reserved required OAuth 2.0 parameters such as 'client_id', 'redirect_uri',
|
|
1120
|
+
* 'scope', 'response_type' and 'state' are not allowed and will be ignored.
|
|
1121
|
+
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|
1122
|
+
* in the OAuth request.
|
|
1123
|
+
*/
|
|
1124
|
+
firebase.auth.GithubAuthProvider.prototype.setCustomParameters =
|
|
1125
|
+
function(customOAuthParameters) {};
|
|
1126
|
+
|
|
1127
|
+
|
|
1128
|
+
/**
|
|
1129
|
+
* Google auth provider.
|
|
1130
|
+
*
|
|
1131
|
+
* @example
|
|
1132
|
+
* // Using a redirect.
|
|
1133
|
+
* firebase.auth().getRedirectResult().then(function(result) {
|
|
1134
|
+
* if (result.credential) {
|
|
1135
|
+
* // This gives you a Google Access Token.
|
|
1136
|
+
* var token = result.credential.accessToken;
|
|
1137
|
+
* }
|
|
1138
|
+
* var user = result.user;
|
|
1139
|
+
* });
|
|
1140
|
+
*
|
|
1141
|
+
* // Start a sign in process for an unauthenticated user.
|
|
1142
|
+
* var provider = new firebase.auth.GoogleAuthProvider();
|
|
1143
|
+
* provider.addScope('profile');
|
|
1144
|
+
* provider.addScope('email');
|
|
1145
|
+
* firebase.auth().signInWithRedirect(provider);
|
|
1146
|
+
*
|
|
1147
|
+
* @example
|
|
1148
|
+
* // Using a popup.
|
|
1149
|
+
* var provider = new firebase.auth.GoogleAuthProvider();
|
|
1150
|
+
* provider.addScope('profile');
|
|
1151
|
+
* provider.addScope('email');
|
|
1152
|
+
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|
1153
|
+
* // This gives you a Google Access Token.
|
|
1154
|
+
* var token = result.credential.accessToken;
|
|
1155
|
+
* // The signed-in user info.
|
|
1156
|
+
* var user = result.user;
|
|
1157
|
+
* });
|
|
1158
|
+
*
|
|
1159
|
+
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|
1160
|
+
* changes.
|
|
1161
|
+
* @constructor
|
|
1162
|
+
* @implements {firebase.auth.AuthProvider}
|
|
1163
|
+
*/
|
|
1164
|
+
firebase.auth.GoogleAuthProvider = function() {};
|
|
1165
|
+
|
|
1166
|
+
/** @type {string} */
|
|
1167
|
+
firebase.auth.GoogleAuthProvider.PROVIDER_ID;
|
|
1168
|
+
|
|
1169
|
+
/**
|
|
1170
|
+
* Creates a credential for Google. At least one of ID token and access token
|
|
1171
|
+
* is required.
|
|
1172
|
+
*
|
|
1173
|
+
* @example
|
|
1174
|
+
* // `googleUser` from the onsuccess Google Sign In callback.
|
|
1175
|
+
* var credential = firebase.auth.GoogleAuthProvider.credential(
|
|
1176
|
+
googleUser.getAuthResponse().id_token);
|
|
1177
|
+
* firebase.auth().signInWithCredential(credential)
|
|
1178
|
+
*
|
|
1179
|
+
* @param {?string=} idToken Google ID token.
|
|
1180
|
+
* @param {?string=} accessToken Google access token.
|
|
1181
|
+
* @return {!firebase.auth.AuthCredential} The auth provider credential.
|
|
1182
|
+
*/
|
|
1183
|
+
firebase.auth.GoogleAuthProvider.credential = function(idToken, accessToken) {};
|
|
1184
|
+
|
|
1185
|
+
/** @type {string} */
|
|
1186
|
+
firebase.auth.GoogleAuthProvider.prototype.providerId;
|
|
1187
|
+
|
|
1188
|
+
/**
|
|
1189
|
+
* @param {string} scope Google OAuth scope.
|
|
1190
|
+
*/
|
|
1191
|
+
firebase.auth.GoogleAuthProvider.prototype.addScope = function(scope) {};
|
|
1192
|
+
|
|
1193
|
+
/**
|
|
1194
|
+
* Sets the OAuth custom parameters to pass in a Google OAuth request for popup
|
|
1195
|
+
* and redirect sign-in operations.
|
|
1196
|
+
* Valid parameters include 'hd', 'hl', 'include_granted_scopes', 'login_hint'
|
|
1197
|
+
* and 'prompt'.
|
|
1198
|
+
* For a detailed list, check the
|
|
1199
|
+
* {@link https://goo.gl/Xo01Jm Google}
|
|
1200
|
+
* documentation.
|
|
1201
|
+
* Reserved required OAuth 2.0 parameters such as 'client_id', 'redirect_uri',
|
|
1202
|
+
* 'scope', 'response_type' and 'state' are not allowed and will be ignored.
|
|
1203
|
+
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|
1204
|
+
* in the OAuth request.
|
|
1205
|
+
*/
|
|
1206
|
+
firebase.auth.GoogleAuthProvider.prototype.setCustomParameters =
|
|
1207
|
+
function(customOAuthParameters) {};
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
/**
|
|
1211
|
+
* Twitter auth provider.
|
|
1212
|
+
*
|
|
1213
|
+
* @example
|
|
1214
|
+
* // Using a redirect.
|
|
1215
|
+
* firebase.auth().getRedirectResult().then(function(result) {
|
|
1216
|
+
* if (result.credential) {
|
|
1217
|
+
* // For accessing the Twitter API.
|
|
1218
|
+
* var token = result.credential.accessToken;
|
|
1219
|
+
* var secret = result.credential.secret;
|
|
1220
|
+
* }
|
|
1221
|
+
* var user = result.user;
|
|
1222
|
+
* });
|
|
1223
|
+
*
|
|
1224
|
+
* // Start a sign in process for an unauthenticated user.
|
|
1225
|
+
* var provider = new firebase.auth.TwitterAuthProvider();
|
|
1226
|
+
* firebase.auth().signInWithRedirect(provider);
|
|
1227
|
+
*
|
|
1228
|
+
* @example
|
|
1229
|
+
* // Using a popup.
|
|
1230
|
+
* var provider = new firebase.auth.TwitterAuthProvider();
|
|
1231
|
+
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|
1232
|
+
* // For accessing the Twitter API.
|
|
1233
|
+
* var token = result.credential.accessToken;
|
|
1234
|
+
* var secret = result.credential.secret;
|
|
1235
|
+
* // The signed-in user info.
|
|
1236
|
+
* var user = result.user;
|
|
1237
|
+
* });
|
|
1238
|
+
*
|
|
1239
|
+
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|
1240
|
+
* changes.
|
|
1241
|
+
* @constructor
|
|
1242
|
+
* @implements {firebase.auth.AuthProvider}
|
|
1243
|
+
*/
|
|
1244
|
+
firebase.auth.TwitterAuthProvider = function() {};
|
|
1245
|
+
|
|
1246
|
+
/** @type {string} */
|
|
1247
|
+
firebase.auth.TwitterAuthProvider.PROVIDER_ID;
|
|
1248
|
+
|
|
1249
|
+
/**
|
|
1250
|
+
* @param {string} token Twitter access token.
|
|
1251
|
+
* @param {string} secret Twitter secret.
|
|
1252
|
+
* @return {!firebase.auth.AuthCredential} The auth provider credential.
|
|
1253
|
+
*/
|
|
1254
|
+
firebase.auth.TwitterAuthProvider.credential = function(token, secret) {};
|
|
1255
|
+
|
|
1256
|
+
/** @type {string} */
|
|
1257
|
+
firebase.auth.TwitterAuthProvider.prototype.providerId;
|
|
1258
|
+
|
|
1259
|
+
/**
|
|
1260
|
+
* Sets the OAuth custom parameters to pass in a Twitter OAuth request for popup
|
|
1261
|
+
* and redirect sign-in operations.
|
|
1262
|
+
* Valid parameters include 'lang'.
|
|
1263
|
+
* Reserved required OAuth 1.0 parameters such as 'oauth_consumer_key',
|
|
1264
|
+
* 'oauth_token', 'oauth_signature', etc are not allowed and will be ignored.
|
|
1265
|
+
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|
1266
|
+
* in the OAuth request.
|
|
1267
|
+
*/
|
|
1268
|
+
firebase.auth.TwitterAuthProvider.prototype.setCustomParameters =
|
|
1269
|
+
function(customOAuthParameters) {};
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
/**
|
|
1273
|
+
* Email and password auth provider implementation.
|
|
1274
|
+
*
|
|
1275
|
+
* To authenticate: {@link firebase.auth.Auth#createUserWithEmailAndPassword}
|
|
1276
|
+
* and {@link firebase.auth.Auth#signInWithEmailAndPassword}.
|
|
1277
|
+
*
|
|
1278
|
+
* @constructor
|
|
1279
|
+
* @implements {firebase.auth.AuthProvider}
|
|
1280
|
+
*/
|
|
1281
|
+
firebase.auth.EmailAuthProvider = function() {};
|
|
1282
|
+
|
|
1283
|
+
/** @type {string} */
|
|
1284
|
+
firebase.auth.EmailAuthProvider.PROVIDER_ID;
|
|
1285
|
+
|
|
1286
|
+
/**
|
|
1287
|
+
* @example
|
|
1288
|
+
* var cred = firebase.auth.EmailAuthProvider.credential(
|
|
1289
|
+
* email,
|
|
1290
|
+
* password
|
|
1291
|
+
* );
|
|
1292
|
+
*
|
|
1293
|
+
* @param {string} email Email address.
|
|
1294
|
+
* @param {string} password User account password.
|
|
1295
|
+
* @return {!firebase.auth.AuthCredential} The auth provider credential.
|
|
1296
|
+
*/
|
|
1297
|
+
firebase.auth.EmailAuthProvider.credential = function(email, password) {};
|
|
1298
|
+
|
|
1299
|
+
/** @type {string} */
|
|
1300
|
+
firebase.auth.EmailAuthProvider.prototype.providerId;
|