katello 3.15.1 → 3.16.0.rc2.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/katello/common/vendor.js +6 -5
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +2 -3
- data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +1 -1
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +13 -9
- data/app/controllers/katello/api/v2/activation_keys_controller.rb +5 -8
- data/app/controllers/katello/api/v2/api_controller.rb +14 -0
- data/app/controllers/katello/api/v2/capsule_content_controller.rb +2 -2
- data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_components_controller.rb +2 -2
- data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +3 -9
- data/app/controllers/katello/api/v2/content_views_controller.rb +3 -3
- data/app/controllers/katello/api/v2/environments_controller.rb +3 -3
- data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -1
- data/app/controllers/katello/api/v2/host_collections_controller.rb +3 -4
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +5 -22
- data/app/controllers/katello/api/v2/host_tracer_controller.rb +39 -2
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +7 -2
- data/app/controllers/katello/api/v2/organizations_controller.rb +7 -14
- data/app/controllers/katello/api/v2/packages_controller.rb +13 -13
- data/app/controllers/katello/api/v2/products_controller.rb +2 -1
- data/app/controllers/katello/api/v2/repositories_controller.rb +7 -11
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +1 -1
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +5 -31
- data/app/controllers/katello/application_controller.rb +1 -1
- data/app/controllers/katello/concerns/api/api_controller.rb +2 -1
- data/app/controllers/katello/concerns/api/v2/hostgroups_controller_extensions.rb +1 -1
- data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +6 -1
- data/app/controllers/katello/concerns/api/v2/smart_proxies_controller_extensions.rb +1 -1
- data/app/controllers/katello/remote_execution_controller.rb +9 -1
- data/app/controllers/katello/sync_management_controller.rb +1 -1
- data/app/helpers/katello/hosts_and_hostgroups_helper.rb +1 -1
- data/app/helpers/katello/katello_urls_helper.rb +1 -1
- data/app/helpers/katello/layout_helper.rb +1 -3
- data/app/helpers/katello/subscription_mailer_helper.rb +23 -0
- data/app/jobs/create_expired_manifest_notifications.rb +11 -0
- data/app/lib/actions/candlepin/consumer/remove_subscription.rb +1 -1
- data/app/lib/actions/katello/activation_key/update.rb +1 -1
- data/app/lib/actions/katello/applicability/host/generate.rb +28 -0
- data/app/lib/actions/katello/applicability/hosts/bulk_generate.rb +32 -0
- data/app/lib/actions/katello/applicability/repository/regenerate.rb +31 -0
- data/app/lib/actions/katello/capsule_content/sync.rb +0 -1
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +0 -2
- data/app/lib/actions/katello/content_view/destroy.rb +3 -1
- data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -1
- data/app/lib/actions/katello/content_view/publish.rb +2 -2
- data/app/lib/actions/katello/content_view/remove.rb +1 -1
- data/app/lib/actions/katello/content_view/update.rb +1 -1
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +6 -0
- data/app/lib/actions/katello/gpg_key/update.rb +1 -1
- data/app/lib/actions/katello/host/erratum/applicable_errata_install.rb +12 -2
- data/app/lib/actions/katello/host/generate_applicability.rb +21 -10
- data/app/lib/actions/katello/host/hypervisors_update.rb +1 -1
- data/app/lib/actions/katello/host/recalculate_errata_status.rb +4 -6
- data/app/lib/actions/katello/host/upload_profiles.rb +36 -5
- data/app/lib/actions/katello/organization/manifest_delete.rb +2 -1
- data/app/lib/actions/katello/organization/manifest_import.rb +3 -1
- data/app/lib/actions/katello/organization/manifest_refresh.rb +3 -1
- data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +0 -13
- data/app/lib/actions/katello/product/content_create.rb +3 -3
- data/app/lib/actions/katello/product/create.rb +1 -1
- data/app/lib/actions/katello/product/destroy.rb +1 -1
- data/app/lib/actions/katello/product/update.rb +1 -1
- data/app/lib/actions/katello/provider/update.rb +1 -1
- data/app/lib/actions/katello/repository/clone_contents.rb +1 -1
- data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -1
- data/app/lib/actions/katello/repository/create.rb +2 -2
- data/app/lib/actions/katello/repository/filtered_index_content.rb +12 -3
- data/app/lib/actions/katello/repository/finish_upload.rb +5 -3
- data/app/lib/actions/katello/repository/import_upload.rb +2 -2
- data/app/lib/actions/katello/repository/sync.rb +28 -16
- data/app/lib/actions/katello/repository/update.rb +17 -6
- data/app/lib/actions/katello/repository/update_cv_repo_cert_guard.rb +17 -0
- data/app/lib/actions/katello/repository/update_redhat_repository.rb +2 -2
- data/app/lib/actions/katello/repository/upload_files.rb +8 -5
- data/app/lib/actions/katello/subscription/update.rb +1 -1
- data/app/lib/actions/pulp/abstract_async_task.rb +3 -5
- data/app/lib/actions/pulp/consumer.rb +1 -3
- data/app/lib/actions/pulp/consumer/content_install.rb +1 -1
- data/app/lib/actions/pulp/orchestration/repository/smart_proxy_sync.rb +0 -1
- data/app/lib/actions/pulp/orchestration/repository/upload_content.rb +2 -0
- data/app/lib/actions/pulp/repository/presenters/deb_presenter.rb +5 -11
- data/app/lib/actions/pulp/repository/presenters/docker_presenter.rb +1 -1
- data/app/lib/actions/pulp3/ContentGuard/refresh.rb +19 -0
- data/app/lib/actions/pulp3/abstract_async_task.rb +3 -5
- data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +8 -10
- data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +2 -2
- data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +22 -13
- data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +8 -6
- data/app/lib/actions/pulp3/orphan_cleanup/delete_orphaned_migrated_repositories.rb +15 -0
- data/app/lib/actions/pulp3/repository/commit_upload.rb +18 -0
- data/app/lib/actions/pulp3/repository/copy_content.rb +1 -0
- data/app/lib/actions/pulp3/repository/import_upload.rb +5 -2
- data/app/lib/actions/pulp3/repository/refresh_distribution.rb +1 -0
- data/app/lib/actions/pulp3/repository/save_distribution_references.rb +3 -1
- data/app/lib/actions/pulp3/repository/save_publication.rb +1 -1
- data/app/lib/actions/pulp3/repository/save_version.rb +4 -2
- data/app/lib/actions/pulp3/repository/update_cv_repository_cert_guard.rb +15 -0
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +8 -3
- data/app/lib/katello/concerns/filter_sensitive_data.rb +18 -0
- data/app/lib/katello/foreman.rb +2 -1
- data/app/lib/katello/http_resource.rb +3 -5
- data/app/lib/katello/lazy_accessor.rb +4 -2
- data/app/lib/katello/messaging/connection.rb +15 -0
- data/app/lib/katello/messaging/received_message.rb +12 -0
- data/app/lib/katello/messaging/stomp_connection.rb +73 -0
- data/app/lib/katello/resources/candlepin/activation_key.rb +0 -1
- data/app/lib/katello/resources/candlepin/admin.rb +1 -1
- data/app/lib/katello/resources/candlepin/consumer.rb +6 -0
- data/app/lib/katello/resources/candlepin/content.rb +7 -1
- data/app/lib/katello/resources/candlepin/owner.rb +0 -9
- data/app/lib/katello/resources/cdn.rb +6 -1
- data/app/lib/katello/resources/registry.rb +1 -1
- data/app/lib/katello/util/cdn_var_substitutor.rb +1 -3
- data/app/lib/katello/util/errata.rb +13 -0
- data/app/lib/katello/util/pulpcore_content_filters.rb +32 -0
- data/app/mailers/katello/subscription_mailer.rb +35 -0
- data/app/models/katello/activation_key.rb +1 -0
- data/app/models/katello/ansible_collection.rb +1 -1
- data/app/models/katello/authorization/host_tracer.rb +14 -0
- data/app/models/katello/authorization/pool.rb +5 -1
- data/app/models/katello/authorization/subscription.rb +1 -3
- data/app/models/katello/concerns/host_managed_extensions.rb +33 -4
- data/app/models/katello/concerns/organization_extensions.rb +9 -0
- data/app/models/katello/concerns/pulp_database_unit.rb +62 -35
- data/app/models/katello/concerns/redhat_extensions.rb +2 -1
- data/app/models/katello/concerns/smart_proxy_extensions.rb +5 -2
- data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -1
- data/app/models/katello/content.rb +2 -2
- data/app/models/katello/content_view.rb +3 -2
- data/app/models/katello/content_view_erratum_filter.rb +29 -0
- data/app/models/katello/content_view_package_filter.rb +16 -1
- data/app/models/katello/content_view_package_group_filter.rb +7 -0
- data/app/models/katello/content_view_version.rb +1 -0
- data/app/models/katello/erratum.rb +6 -1
- data/app/models/katello/erratum_cve.rb +4 -0
- data/app/models/katello/events/generate_host_applicability.rb +28 -0
- data/app/models/katello/glue/candlepin/activation_key.rb +1 -1
- data/app/models/katello/glue/candlepin/pool.rb +6 -8
- data/app/models/katello/glue/candlepin/product.rb +1 -1
- data/app/models/katello/glue/candlepin/subscription.rb +1 -1
- data/app/models/katello/glue/provider.rb +5 -3
- data/app/models/katello/glue/pulp/repo.rb +1 -1
- data/app/models/katello/host/content_facet.rb +27 -4
- data/app/models/katello/host/subscription_facet.rb +1 -1
- data/app/models/katello/host_queue_element.rb +4 -0
- data/app/models/katello/host_tracer.rb +8 -0
- data/app/models/katello/kt_environment.rb +1 -1
- data/app/models/katello/module_stream.rb +2 -0
- data/app/models/katello/module_stream_rpm.rb +6 -0
- data/app/models/katello/package_group.rb +2 -1
- data/app/models/katello/pool.rb +19 -3
- data/app/models/katello/product.rb +1 -1
- data/app/models/katello/provider.rb +2 -3
- data/app/models/katello/pulp3/content_guard.rb +14 -0
- data/app/models/katello/puppet_module.rb +1 -1
- data/app/models/katello/repository.rb +20 -7
- data/app/models/katello/root_repository.rb +11 -0
- data/app/models/katello/rpm.rb +2 -1
- data/app/models/katello/subscription.rb +4 -4
- data/app/models/katello/sync_plan.rb +2 -2
- data/app/models/katello/task_status.rb +1 -1
- data/app/models/katello/trace_status.rb +3 -3
- data/app/models/setting/content.rb +8 -2
- data/app/services/katello/applicability/applicable_content_helper.rb +135 -0
- data/app/services/katello/applicable_host_queue.rb +21 -0
- data/app/services/katello/candlepin/consumer.rb +1 -1
- data/app/services/katello/candlepin/message_handler.rb +2 -3
- data/app/services/katello/candlepin_event_listener.rb +39 -53
- data/app/services/katello/event_daemon.rb +18 -18
- data/app/services/katello/event_monitor/poller_thread.rb +15 -17
- data/app/services/katello/product_content_importer.rb +2 -2
- data/app/services/katello/pulp/consumer.rb +6 -10
- data/app/services/katello/pulp/docker_manifest.rb +1 -1
- data/app/services/katello/pulp/docker_manifest_list.rb +1 -1
- data/app/services/katello/pulp/erratum.rb +1 -1
- data/app/services/katello/pulp/file_unit.rb +1 -1
- data/app/services/katello/pulp/module_stream.rb +1 -1
- data/app/services/katello/pulp/ostree_branch.rb +1 -1
- data/app/services/katello/pulp/package_group.rb +1 -1
- data/app/services/katello/pulp/pulp_content_unit.rb +8 -0
- data/app/services/katello/pulp/puppet_module.rb +1 -1
- data/app/services/katello/pulp/repository/yum.rb +3 -3
- data/app/services/katello/pulp/yum_metadata_file.rb +1 -1
- data/app/services/katello/pulp3/ansible_collection.rb +1 -1
- data/app/services/katello/pulp3/api/ansible_collection.rb +4 -1
- data/app/services/katello/pulp3/api/content_guard.rb +45 -0
- data/app/services/katello/pulp3/api/core.rb +20 -12
- data/app/services/katello/pulp3/api/docker.rb +4 -1
- data/app/services/katello/pulp3/api/file.rb +4 -1
- data/app/services/katello/pulp3/api/yum.rb +28 -1
- data/app/services/katello/pulp3/content.rb +2 -2
- data/app/services/katello/pulp3/docker_manifest.rb +1 -1
- data/app/services/katello/pulp3/docker_manifest_list.rb +1 -1
- data/app/services/katello/pulp3/docker_tag.rb +1 -1
- data/app/services/katello/pulp3/erratum.rb +9 -1
- data/app/services/katello/pulp3/file_unit.rb +1 -1
- data/app/services/katello/pulp3/migration.rb +2 -1
- data/app/services/katello/pulp3/module_stream.rb +13 -3
- data/app/services/katello/pulp3/package_group.rb +1 -1
- data/app/services/katello/pulp3/pulp_content_unit.rb +19 -7
- data/app/services/katello/pulp3/repository.rb +37 -16
- data/app/services/katello/pulp3/repository/docker.rb +1 -1
- data/app/services/katello/pulp3/repository/yum.rb +106 -5
- data/app/services/katello/pulp3/repository_mirror.rb +4 -2
- data/app/services/katello/pulp3/rpm.rb +26 -39
- data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +1 -1
- data/app/services/katello/pulp3/smart_proxy_repository.rb +23 -3
- data/app/services/katello/pulp3/srpm.rb +8 -1
- data/app/services/katello/ui_notifications/subscriptions/expire_soon.rb +1 -1
- data/app/services/katello/ui_notifications/subscriptions/manifest_expired_warning.rb +63 -0
- data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +1 -1
- data/app/views/katello/api/v2/content_facet/erratum.json.rabl +1 -1
- data/app/views/katello/api/v2/content_facet/show.json.rabl +4 -0
- data/app/views/katello/api/v2/content_view_histories/show.json.rabl +2 -6
- data/app/views/katello/api/v2/host_subscriptions/product_content.json.rabl +2 -1
- data/app/views/katello/api/v2/host_tracer/base.json.rabl +6 -4
- data/app/views/katello/api/v2/organizations/owner_details.rabl +5 -0
- data/app/views/katello/api/v2/organizations/show.json.rabl +6 -1
- data/app/views/katello/api/v2/organizations/upstream_consumer.rabl +1 -0
- data/app/views/katello/subscription_mailer/subscription_expiry.html.erb +47 -0
- data/app/views/katello/subscription_mailer/subscription_expiry.text.erb +19 -0
- data/app/views/users/_subscriptions_expiring_soon_query_builder.html.erb +16 -0
- data/config/initializers/monkeys.rb +2 -2
- data/config/katello.yaml.example +4 -0
- data/config/routes.rb +2 -2
- data/config/routes/api/rhsm.rb +1 -0
- data/config/routes/api/v2.rb +6 -1
- data/config/routes/overrides.rb +1 -1
- data/db/functions/empty_v01.sql +7 -0
- data/db/functions/evr_trigger_v01.sql +9 -0
- data/db/functions/isalpha_v01.sql +11 -0
- data/db/functions/isalphanum_v01.sql +12 -0
- data/db/functions/isdigit_v01.sql +10 -0
- data/db/functions/rpmver_array_v01.sql +60 -0
- data/db/migrate/20131016124255_add_foreign_keys_engine.rb +1 -1
- data/db/migrate/20140117160939_refactor_content_views.rb +1 -1
- data/db/migrate/20140626204657_add_unlimited_to_activation_keys.rb +3 -3
- data/db/migrate/20140626204902_add_unlimited_to_host_collection.rb +3 -3
- data/db/migrate/20140930170628_add_errata.rb +1 -1
- data/db/migrate/20150119153452_update_promote_errata_email_description.rb +2 -6
- data/db/migrate/20150606021722_create_puppet_modules.rb +1 -1
- data/db/migrate/20150813185339_create_subscriptions.rb +1 -1
- data/db/migrate/20150826170004_add_content_facet.rb +1 -1
- data/db/migrate/20150930183738_migrate_content_hosts.rb +6 -8
- data/db/migrate/20160908234510_add_rpm_nvra.rb +1 -1
- data/db/migrate/20160930150810_add_smart_proxy_download_policy.rb +1 -1
- data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +1 -1
- data/db/migrate/20161026191118_fix_invalid_interfaces.rb +1 -1
- data/db/migrate/20180103230812_set_errata_updated_date.rb +1 -1
- data/db/migrate/20180410140909_add_organization_id_to_pool.rb +1 -1
- data/db/migrate/20180920214134_create_repository_root.rb +2 -3
- data/db/migrate/20190730183518_add_docker_tag_join_table.rb +1 -1
- data/db/migrate/20190730203334_add_docker_meta_tag_join_table.rb +1 -1
- data/db/migrate/20200204034123_add_pulp3_href_to_repository_erratum.rb +6 -0
- data/db/migrate/20200213184848_create_evr_type.rb +49 -0
- data/db/migrate/20200304201026_create_katello_module_stream_rpms.rb +15 -0
- data/db/migrate/20200407171926_create_content_guard.rb +10 -0
- data/db/migrate/20200506163345_add_applicability_indicesto_katello_host_available_module_streams.rb +12 -0
- data/db/migrate/20200511204005_create_katello_host_queue_elements.rb +12 -0
- data/db/migrate/20200526200422_encrypt_root_repository_upstream_password.rb +45 -0
- data/db/seeds.d/106-mail_notifications.rb +8 -0
- data/db/seeds.d/107-enable_dynflow.rb +1 -1
- data/db/seeds.d/109-katello-notification-blueprints.rb +6 -0
- data/db/seeds.d/111-upgrade_tasks.rb +2 -1
- data/db/seeds.d/75-job_templates.rb +2 -2
- data/db/triggers/evr_insert_trigger_katello_installed_packages_v01.sql +5 -0
- data/db/triggers/evr_insert_trigger_katello_rpms_v01.sql +5 -0
- data/db/triggers/evr_update_trigger_katello_installed_packages_v01.sql +10 -0
- data/db/triggers/evr_update_trigger_katello_rpms_v01.sql +10 -0
- data/engines/bastion/app/assets/javascripts/bastion/bastion.module.js +1 -1
- data/engines/bastion/app/assets/javascripts/bastion/routing.module.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-animate/angular-animate.js +465 -340
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af-na.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af-za.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_agq-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ak-gh.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ak.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_am-et.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_am.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-001.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ae.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-bh.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-dj.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-eg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-er.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-il.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-iq.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-jo.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-km.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-kw.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-lb.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ly.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ma.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-mr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-om.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ps.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-qa.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sa.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sd.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-so.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ss.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sy.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-td.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-tn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-xb.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ye.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_as-in.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_as.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_asa-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_asa.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ast-es.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ast.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-cyrl-az.js +41 -41
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-cyrl.js +41 -41
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-latn-az.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-latn.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bas-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_be-by.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_be.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bez-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bez.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bg-bg.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bg.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bm-ml.js +31 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn-bd.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn-in.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo-cn.js +24 -24
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo-in.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo.js +24 -24
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_br-fr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_br.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_brx-in.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_brx.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs-latn-ba.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs-latn.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-ad.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-es.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-fr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-it.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ce-ru.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ce.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cgg-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cgg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_chr-us.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_chr.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab-iq.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab-ir.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-iq.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-ir.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-latn-iq.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-latn.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cs-cz.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cs.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cu-ru.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cu.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cy-gb.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cy.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da-dk.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da-gl.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dav-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dav.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-at.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-ch.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-it.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-li.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dje-ne.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dua-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dyo-sn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ebu-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ebu.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ee-tg.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-001.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-150.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ai.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-at.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-au.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-be.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-bi.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-bw.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cc.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ch.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ck.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cm.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cx.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cy.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-de.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-dg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-dk.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-fi.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-fk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gb.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gi.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gy.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ie.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-il.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-im.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-io.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-je.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-jm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ke.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mg.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ms.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mt.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mu.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nf.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nl.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nr.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nu.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-pk.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-pn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-rw.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sc.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-se.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sh.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-si.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sl.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sx.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tv.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-us-posix.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-vu.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-xa.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-za.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-zw.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-419.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ar.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-bo.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-br.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-bz.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cl.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-co.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cr.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cu.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-do.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ea.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ec.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-es.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-gq.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-gt.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-hn.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ic.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-mx.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ni.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pa.js +13 -13
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pe.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ph.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pr.js +13 -13
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-py.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-sv.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-us.js +15 -15
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-uy.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ve.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_et-ee.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_et.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_eu-es.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_eu.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ewo-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa-af.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa-ir.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-gn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-mr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-sn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fi-fi.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fi.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo-dk.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo-fo.js +32 -32
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo.js +32 -32
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-be.js +13 -13
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bf.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bi.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bj.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bl.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ca.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cd.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cf.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cg.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ch.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ci.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cm.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-dj.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-dz.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-fr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ga.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gf.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gn.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gp.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gq.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ht.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-km.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-lu.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ma.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mc.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mf.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mg.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ml.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mq.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mr.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mu.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-nc.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ne.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-pf.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-pm.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-re.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-rw.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sc.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sn.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sy.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-td.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-tg.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-tn.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-vu.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-wf.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-yt.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fy-nl.js +36 -36
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fy.js +36 -36
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gl-es.js +27 -27
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gl.js +27 -27
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-ch.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-fr.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-li.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gu-in.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gu.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_guz-ke.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_guz.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gv-im.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gv.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-gh.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-ne.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-ng.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_he-il.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_he.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr-ba.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr-hr.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hy-am.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hy.js +20 -20
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_id-id.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_id.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ig-ng.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ig.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ii-cn.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ii.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_in.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_is-is.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-ch.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-it.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-sm.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-va.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_iw.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ja-jp.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jgo-cm.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jgo.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jmc-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jmc.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ka-ge.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ka.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kab-dz.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kab.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kam-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kam.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kde-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kde.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_khq-ml.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ki-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ki.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kk-kz.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kk.js +28 -28
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kkj-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kl-gl.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kl.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kln-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kln.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_km-kh.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_km.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kn-in.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko-kp.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko-kr.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kok-in.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kok.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ks-in.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksb-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksb.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksf-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksh-de.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksh.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kw-gb.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kw.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ky-kg.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ky.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lag-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lag.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lg-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lkt-us.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lkt.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ln-cf.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ln-cg.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lo-la.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lo.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc-iq.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc-ir.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luo-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luo.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luy-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luy.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lv-lv.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lv.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mer-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mer.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mfe-mu.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mg-mg.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mg.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgh-mz.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgh.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgo-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mk-mk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ml-in.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ml.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mn-mn.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mn.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mo.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-bn.js +39 -13
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-my.js +35 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-sg.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mua-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_my-mm.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_my.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mzn-ir.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mzn.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb-no.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb-sj.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nd-zw.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nd.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds-de.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds-nl.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne-in.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne-np.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-aw.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-be.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-bq.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-cw.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-nl.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-sr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-sx.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nmg-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nnh-cm.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nnh.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_no-no.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_no.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nus-ss.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nus.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nyn-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nyn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om-et.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om-ke.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os-ge.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os-ru.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-arab-pk.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-arab.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-guru-in.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-guru.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pl-pl.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pl.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_prg-001.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_prg.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ps-af.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ps.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-ao.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-br.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-ch.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-cv.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-gq.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-gw.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-lu.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-mo.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-mz.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-pt.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-st.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-tl.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-bo.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-ec.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-pe.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rm-ch.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rn-bi.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro-md.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro-ro.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rof-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rof.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-by.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-kg.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-kz.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-md.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-ru.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-ua.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rw-rw.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rw.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rwk-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rwk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sah-ru.js +40 -40
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sah.js +40 -40
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_saq-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_saq.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sbp-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sbp.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_se-fi.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_seh-mz.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_seh.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ses-ml.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sg-cf.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sh.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-latn-ma.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-latn.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-tfng-ma.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-tfng.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_si-lk.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_si.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sk-sk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sl-si.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sl.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_smn-fi.js +51 -51
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_smn.js +51 -51
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sn-zw.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sn.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-dj.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-et.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-ke.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-so.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-al.js +24 -24
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-mk.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-xk.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-ba.js +21 -21
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-me.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-rs.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-xk.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-ba.js +21 -21
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-me.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-rs.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-xk.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-ax.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-fi.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-se.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-cd.js +45 -45
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-ke.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-tz.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-ug.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-in.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-lk.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-my.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-sg.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_te-in.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_te.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti-er.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti-et.js +45 -45
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti.js +45 -45
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tk-tm.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tk.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_to-to.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_to.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr-cy.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr-tr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_twq-ne.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tzm-ma.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tzm.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ug-cn.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ug.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uk-ua.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uk.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur-in.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur-pk.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-arab-af.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-arab.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-cyrl-uz.js +49 -49
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-cyrl.js +47 -47
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-latn-uz.js +41 -41
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-latn.js +39 -39
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz.js +39 -39
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vi-vn.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vi.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vo-001.js +22 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vo.js +22 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vun-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vun.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_xog-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_xog.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yav-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yi-001.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yi.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo-bj.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo-ng.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yue-hk.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yue.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zgh-ma.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zgh.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-cn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hans-cn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hans.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hant-hk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hant-mo.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zu-za.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zu.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ar-xb.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ce-ru.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ce.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/cu-ru.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/cu.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/de-it.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-at.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-bi.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-ch.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-cy.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-de.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-dk.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-fi.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-il.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-nl.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-se.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-si.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-us-posix.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-xa.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/es-br.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/es-bz.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/fo-dk.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-gh.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-ne.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-ng.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/it-va.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/kk-kz.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ks-in.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ky-kg.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc-iq.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc-ir.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mn-mn.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mo.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ms-sg.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mzn-ir.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mzn.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds-de.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds-nl.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nus-ss.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/prg-001.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/prg.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-ch.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-gq.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-lu.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/sh.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tk-tm.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tk.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tzm-ma.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ug-cn.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/yue-hk.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/yue.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-resource/angular-resource.js +407 -264
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-route/angular-route.js +397 -156
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-sanitize/angular-sanitize.js +516 -320
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-ui-router/angular-ui-router.js +10551 -4465
- data/engines/bastion/vendor/assets/javascripts/bastion/angular/angular.js +10455 -4892
- data/engines/bastion/vendor/assets/javascripts/bastion/ngUpload/ng-upload.js +2 -2
- data/engines/bastion_katello/README.md +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-key.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ansible-collections/ansible-collections.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/api-error-handler.service.js +2 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-traces-modal.controller.js +65 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-traces-modal.html +79 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +11 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-actions.controller.js +8 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +10 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-traces.html +14 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +23 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +20 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-client.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/deb.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifest-lists/docker-manifest-list.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifests/docker-manifest.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.controller.js +15 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/erratum.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/file.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collection.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-traces-resolve.factory.js +18 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +3869 -2260
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +4155 -2272
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +4257 -2352
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +3840 -2253
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +3999 -2409
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +3853 -2291
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +4388 -2554
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +4121 -2427
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +3936 -2241
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +3824 -2189
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/module-stream.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/package-groups/package-group.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/package.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync-options.html +5 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +1 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/product.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task-details.controller.js +3 -2
- data/lib/katello.rb +4 -1
- data/lib/katello/engine.rb +25 -3
- data/lib/katello/permissions/host_permissions.rb +3 -0
- data/lib/katello/permissions/organization_permissions.rb +1 -2
- data/lib/katello/plugin.rb +12 -3
- data/lib/katello/prevent_json_parsing.rb +1 -1
- data/lib/katello/scheduled_jobs.rb +1 -1
- data/lib/katello/tasks/clean_backend_objects.rake +1 -1
- data/lib/katello/tasks/common.rake +7 -0
- data/lib/katello/tasks/delete_orphaned_content.rake +3 -1
- data/lib/katello/tasks/import_applicability.rake +4 -6
- data/lib/katello/tasks/jenkins.rake +1 -1
- data/lib/katello/tasks/pulp3_content_switchover.rake +6 -8
- data/lib/katello/tasks/pulp3_migration.rake +2 -0
- data/lib/katello/tasks/pulp3_post_migration_check.rake +4 -0
- data/lib/katello/tasks/receptor/extract_orgs.rake +27 -0
- data/lib/katello/tasks/reimport.rake +15 -19
- data/lib/katello/tasks/repository.rake +7 -11
- data/lib/katello/tasks/reset.rake +12 -13
- data/lib/katello/tasks/update_content_default_http_proxy.rake +1 -1
- data/lib/katello/tasks/update_subscription_facet_backend_data.rake +14 -16
- data/lib/katello/tasks/upgrades/3.10/clear_invalid_repo_credentials.rake +1 -1
- data/lib/katello/tasks/upgrades/3.10/update_gpg_key_urls.rake +1 -1
- data/lib/katello/tasks/upgrades/3.11/update_puppet_repos.rake +9 -11
- data/lib/katello/tasks/upgrades/3.15/set_sub_facet_dmi_uuid.rake +1 -1
- data/lib/katello/tasks/upgrades/3.16/update_applicable_el8_hosts.rake +29 -0
- data/lib/katello/tasks/upgrades/3.8/clear_checksum_type.rake +18 -22
- data/lib/katello/version.rb +1 -1
- data/lib/monkeys/ar_postgres_evr_t.rb +24 -0
- data/lib/monkeys/fx_sqlite_skip.rb +13 -0
- data/locale/action_names.rb +47 -39
- data/locale/bn/katello.po +4004 -2559
- data/locale/cs/katello.po +3744 -2221
- data/locale/de/katello.po +4293 -3046
- data/locale/en/katello.po +3125 -1558
- data/locale/es/katello.po +4269 -3013
- data/locale/fr/katello.po +4287 -3077
- data/locale/gu/katello.po +4016 -2578
- data/locale/hi/katello.po +4015 -2568
- data/locale/it/katello.po +4279 -3040
- data/locale/ja/katello.po +4326 -2856
- data/locale/katello.pot +2618 -1464
- data/locale/kn/katello.po +4023 -2587
- data/locale/ko/katello.po +4311 -2818
- data/locale/mr/katello.po +3962 -2509
- data/locale/or/katello.po +4008 -2561
- data/locale/pa/katello.po +3975 -2516
- data/locale/pt/katello.po +3373 -1837
- data/locale/pt_BR/katello.po +4248 -2967
- data/locale/ru/katello.po +4295 -2901
- data/locale/ta/katello.po +3998 -2560
- data/locale/te/katello.po +4018 -2569
- data/locale/zh_CN/katello.po +4335 -2806
- data/locale/zh_TW/katello.po +4463 -2962
- data/package.json +13 -39
- data/webpack/__mocks__/foremanReact/components/{BreadcrumbBar.js → BreadcrumbBar/index.js} +0 -1
- data/webpack/__mocks__/react-intl/index.js +3 -0
- data/webpack/__mocks__/react-intl/locale-data/en.js +1 -0
- data/webpack/containers/Application/config.js +5 -0
- data/webpack/containers/Application/overrides.scss +8 -0
- data/webpack/mockRequest.js +1 -0
- data/webpack/move_to_foreman/common/helpers.js +2 -1
- data/webpack/move_to_foreman/components/common/table/components/__snapshots__/Table.test.js.snap +1 -0
- data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetailsActions.js +2 -2
- data/webpack/scenes/AnsibleCollections/Details/__tests__/__snapshots__/AnsibleCollectionDetailsActions.test.js.snap +4 -0
- data/webpack/scenes/ContentViews/ContentViewSelectors.js +13 -0
- data/webpack/scenes/ContentViews/ContentViewsActions.js +18 -0
- data/webpack/scenes/ContentViews/ContentViewsConstants.js +3 -0
- data/webpack/scenes/ContentViews/ContentViewsPage.js +30 -0
- data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +104 -0
- data/webpack/scenes/ContentViews/Table/TableWrapper.js +55 -0
- data/webpack/scenes/ContentViews/Table/actionResolver.js +28 -0
- data/webpack/scenes/ContentViews/Table/index.js +3 -0
- data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +133 -0
- data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +228 -0
- data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +99 -0
- data/webpack/scenes/ContentViews/components/ContentViewName.js +33 -0
- data/webpack/scenes/ContentViews/components/EmptyStateMessage.js +43 -0
- data/webpack/scenes/ContentViews/components/IconWithCount.js +18 -0
- data/webpack/scenes/ContentViews/components/IconWithCount.scss +3 -0
- data/webpack/scenes/ContentViews/components/Loading.js +31 -0
- data/webpack/scenes/ContentViews/components/contentViewName.scss +9 -0
- data/webpack/scenes/ContentViews/details/ContentViewDetailActions.js +12 -0
- data/webpack/scenes/ContentViews/details/ContentViewDetailSelectors.js +15 -0
- data/webpack/scenes/ContentViews/details/DetailsContainer.js +35 -0
- data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +11 -0
- data/webpack/scenes/ContentViews/expansions/EnvironmentsExpansion.js +19 -0
- data/webpack/scenes/ContentViews/expansions/RepositoriesExpansion.js +12 -0
- data/webpack/scenes/ContentViews/expansions/VersionsExpansion.js +11 -0
- data/webpack/scenes/ContentViews/index.js +4 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsActions.js +2 -2
- data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailsActions.test.js.snap +4 -0
- data/webpack/scenes/RedHatRepositories/__tests__/__snapshots__/RedHatRepositoriesPage.test.js.snap +8 -0
- data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +3 -2
- data/webpack/scenes/Subscriptions/SubscriptionActions.js +12 -14
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +14 -4
- data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +8 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +11 -22
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +11 -6
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +21 -17
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +8 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +0 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +10 -0
- data/webpack/scenes/Subscriptions/index.js +5 -1
- data/webpack/scenes/Tasks/TaskActions.js +2 -1
- data/webpack/scenes/Tasks/__tests__/__snapshots__/TaskActions.test.js.snap +12 -8
- data/webpack/test-utils/nockWrapper.js +17 -0
- data/webpack/test-utils/react-testing-lib-wrapper.js +42 -0
- data/webpack/test_setup.js +10 -0
- metadata +269 -49
- data/app/lib/actions/candlepin/owner/auto_attach.rb +0 -15
- data/app/lib/actions/katello/organization/auto_attach_subscriptions.rb +0 -16
- data/app/services/katello/candlepin_listening_service.rb +0 -94
- data/config/initializers/multipart_json_fix.rb +0 -15
- data/config/initializers/runcible.rb +0 -5
- data/lib/monkeys/json_munging_patch.rb +0 -25
- data/lib/monkeys/multi_json_empty_fix.rb +0 -14
- data/webpack/__mocks__/foremanReact/common/I18n.js +0 -5
- data/webpack/__mocks__/foremanReact/common/helpers.js +0 -21
- data/webpack/__mocks__/foremanReact/common/keyCodes.js +0 -8
- data/webpack/__mocks__/foremanReact/components/PermissionDenied/index.js +0 -2
- data/webpack/__mocks__/foremanReact/components/common/ModalProgressBar.js +0 -8
- data/webpack/__mocks__/foremanReact/components/common/table.js +0 -6
- data/webpack/__mocks__/foremanReact/redux/API.js +0 -6
- data/webpack/__mocks__/foremanReact/redux/middlewares/IntervalMiddleware/IntervalSelectors.js +0 -6
- data/webpack/__mocks__/foremanReact/redux/middlewares/IntervalMiddleware/index.js +0 -11
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.
|
3
|
-
* (c) 2010-
|
2
|
+
* @license AngularJS v1.7.9
|
3
|
+
* (c) 2010-2018 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
6
6
|
(function(window, angular) {'use strict';
|
@@ -17,19 +17,24 @@
|
|
17
17
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
18
18
|
|
19
19
|
var $sanitizeMinErr = angular.$$minErr('$sanitize');
|
20
|
+
var bind;
|
21
|
+
var extend;
|
22
|
+
var forEach;
|
23
|
+
var isArray;
|
24
|
+
var isDefined;
|
25
|
+
var lowercase;
|
26
|
+
var noop;
|
27
|
+
var nodeContains;
|
28
|
+
var htmlParser;
|
29
|
+
var htmlSanitizeWriter;
|
20
30
|
|
21
31
|
/**
|
22
32
|
* @ngdoc module
|
23
33
|
* @name ngSanitize
|
24
34
|
* @description
|
25
35
|
*
|
26
|
-
* # ngSanitize
|
27
|
-
*
|
28
36
|
* The `ngSanitize` module provides functionality to sanitize HTML.
|
29
37
|
*
|
30
|
-
*
|
31
|
-
* <div doc-module-components="ngSanitize"></div>
|
32
|
-
*
|
33
38
|
* See {@link ngSanitize.$sanitize `$sanitize`} for usage.
|
34
39
|
*/
|
35
40
|
|
@@ -42,12 +47,11 @@ var $sanitizeMinErr = angular.$$minErr('$sanitize');
|
|
42
47
|
* Sanitizes an html string by stripping all potentially dangerous tokens.
|
43
48
|
*
|
44
49
|
* The input is sanitized by parsing the HTML into tokens. All safe tokens (from a whitelist) are
|
45
|
-
* then serialized back to properly escaped
|
50
|
+
* then serialized back to a properly escaped HTML string. This means that no unsafe input can make
|
46
51
|
* it into the returned string.
|
47
52
|
*
|
48
53
|
* The whitelist for URL sanitization of attribute values is configured using the functions
|
49
|
-
* `aHrefSanitizationWhitelist` and `imgSrcSanitizationWhitelist` of {@link
|
50
|
-
* `$compileProvider`}.
|
54
|
+
* `aHrefSanitizationWhitelist` and `imgSrcSanitizationWhitelist` of {@link $compileProvider}.
|
51
55
|
*
|
52
56
|
* The input may also contain SVG markup if this is enabled via {@link $sanitizeProvider}.
|
53
57
|
*
|
@@ -55,7 +59,7 @@ var $sanitizeMinErr = angular.$$minErr('$sanitize');
|
|
55
59
|
* @returns {string} Sanitized HTML.
|
56
60
|
*
|
57
61
|
* @example
|
58
|
-
<example module="sanitizeExample" deps="angular-sanitize.js">
|
62
|
+
<example module="sanitizeExample" deps="angular-sanitize.js" name="sanitize-service">
|
59
63
|
<file name="index.html">
|
60
64
|
<script>
|
61
65
|
angular.module('sanitizeExample', ['ngSanitize'])
|
@@ -104,19 +108,19 @@ var $sanitizeMinErr = angular.$$minErr('$sanitize');
|
|
104
108
|
</file>
|
105
109
|
<file name="protractor.js" type="protractor">
|
106
110
|
it('should sanitize the html snippet by default', function() {
|
107
|
-
expect(element(by.css('#bind-html-with-sanitize div')).
|
111
|
+
expect(element(by.css('#bind-html-with-sanitize div')).getAttribute('innerHTML')).
|
108
112
|
toBe('<p>an html\n<em>click here</em>\nsnippet</p>');
|
109
113
|
});
|
110
114
|
|
111
115
|
it('should inline raw snippet if bound to a trusted value', function() {
|
112
|
-
expect(element(by.css('#bind-html-with-trust div')).
|
116
|
+
expect(element(by.css('#bind-html-with-trust div')).getAttribute('innerHTML')).
|
113
117
|
toBe("<p style=\"color:blue\">an html\n" +
|
114
118
|
"<em onmouseover=\"this.textContent='PWN3D!'\">click here</em>\n" +
|
115
119
|
"snippet</p>");
|
116
120
|
});
|
117
121
|
|
118
122
|
it('should escape snippet without any filter', function() {
|
119
|
-
expect(element(by.css('#bind-default div')).
|
123
|
+
expect(element(by.css('#bind-default div')).getAttribute('innerHTML')).
|
120
124
|
toBe("<p style=\"color:blue\">an html\n" +
|
121
125
|
"<em onmouseover=\"this.textContent='PWN3D!'\">click here</em>\n" +
|
122
126
|
"snippet</p>");
|
@@ -125,11 +129,11 @@ var $sanitizeMinErr = angular.$$minErr('$sanitize');
|
|
125
129
|
it('should update', function() {
|
126
130
|
element(by.model('snippet')).clear();
|
127
131
|
element(by.model('snippet')).sendKeys('new <b onclick="alert(1)">text</b>');
|
128
|
-
expect(element(by.css('#bind-html-with-sanitize div')).
|
132
|
+
expect(element(by.css('#bind-html-with-sanitize div')).getAttribute('innerHTML')).
|
129
133
|
toBe('new <b>text</b>');
|
130
|
-
expect(element(by.css('#bind-html-with-trust div')).
|
134
|
+
expect(element(by.css('#bind-html-with-trust div')).getAttribute('innerHTML')).toBe(
|
131
135
|
'new <b onclick="alert(1)">text</b>');
|
132
|
-
expect(element(by.css('#bind-default div')).
|
136
|
+
expect(element(by.css('#bind-default div')).getAttribute('innerHTML')).toBe(
|
133
137
|
"new <b onclick=\"alert(1)\">text</b>");
|
134
138
|
});
|
135
139
|
</file>
|
@@ -140,16 +144,19 @@ var $sanitizeMinErr = angular.$$minErr('$sanitize');
|
|
140
144
|
/**
|
141
145
|
* @ngdoc provider
|
142
146
|
* @name $sanitizeProvider
|
147
|
+
* @this
|
143
148
|
*
|
144
149
|
* @description
|
145
150
|
* Creates and configures {@link $sanitize} instance.
|
146
151
|
*/
|
147
152
|
function $SanitizeProvider() {
|
153
|
+
var hasBeenInstantiated = false;
|
148
154
|
var svgEnabled = false;
|
149
155
|
|
150
156
|
this.$get = ['$$sanitizeUri', function($$sanitizeUri) {
|
157
|
+
hasBeenInstantiated = true;
|
151
158
|
if (svgEnabled) {
|
152
|
-
|
159
|
+
extend(validElements, svgElements);
|
153
160
|
}
|
154
161
|
return function(html) {
|
155
162
|
var buf = [];
|
@@ -187,338 +194,524 @@ function $SanitizeProvider() {
|
|
187
194
|
* </code></pre>
|
188
195
|
* </div>
|
189
196
|
*
|
190
|
-
* @param {boolean=}
|
191
|
-
* @returns {boolean
|
197
|
+
* @param {boolean=} flag Enable or disable SVG support in the sanitizer.
|
198
|
+
* @returns {boolean|$sanitizeProvider} Returns the currently configured value if called
|
192
199
|
* without an argument or self for chaining otherwise.
|
193
200
|
*/
|
194
201
|
this.enableSvg = function(enableSvg) {
|
195
|
-
if (
|
202
|
+
if (isDefined(enableSvg)) {
|
196
203
|
svgEnabled = enableSvg;
|
197
204
|
return this;
|
198
205
|
} else {
|
199
206
|
return svgEnabled;
|
200
207
|
}
|
201
208
|
};
|
202
|
-
}
|
203
209
|
|
204
|
-
function sanitizeText(chars) {
|
205
|
-
var buf = [];
|
206
|
-
var writer = htmlSanitizeWriter(buf, angular.noop);
|
207
|
-
writer.chars(chars);
|
208
|
-
return buf.join('');
|
209
|
-
}
|
210
210
|
|
211
|
+
/**
|
212
|
+
* @ngdoc method
|
213
|
+
* @name $sanitizeProvider#addValidElements
|
214
|
+
* @kind function
|
215
|
+
*
|
216
|
+
* @description
|
217
|
+
* Extends the built-in lists of valid HTML/SVG elements, i.e. elements that are considered safe
|
218
|
+
* and are not stripped off during sanitization. You can extend the following lists of elements:
|
219
|
+
*
|
220
|
+
* - `htmlElements`: A list of elements (tag names) to extend the current list of safe HTML
|
221
|
+
* elements. HTML elements considered safe will not be removed during sanitization. All other
|
222
|
+
* elements will be stripped off.
|
223
|
+
*
|
224
|
+
* - `htmlVoidElements`: This is similar to `htmlElements`, but marks the elements as
|
225
|
+
* "void elements" (similar to HTML
|
226
|
+
* [void elements](https://rawgit.com/w3c/html/html5.1-2/single-page.html#void-elements)). These
|
227
|
+
* elements have no end tag and cannot have content.
|
228
|
+
*
|
229
|
+
* - `svgElements`: This is similar to `htmlElements`, but for SVG elements. This list is only
|
230
|
+
* taken into account if SVG is {@link ngSanitize.$sanitizeProvider#enableSvg enabled} for
|
231
|
+
* `$sanitize`.
|
232
|
+
*
|
233
|
+
* <div class="alert alert-info">
|
234
|
+
* This method must be called during the {@link angular.Module#config config} phase. Once the
|
235
|
+
* `$sanitize` service has been instantiated, this method has no effect.
|
236
|
+
* </div>
|
237
|
+
*
|
238
|
+
* <div class="alert alert-warning">
|
239
|
+
* Keep in mind that extending the built-in lists of elements may expose your app to XSS or
|
240
|
+
* other vulnerabilities. Be very mindful of the elements you add.
|
241
|
+
* </div>
|
242
|
+
*
|
243
|
+
* @param {Array<String>|Object} elements - A list of valid HTML elements or an object with one or
|
244
|
+
* more of the following properties:
|
245
|
+
* - **htmlElements** - `{Array<String>}` - A list of elements to extend the current list of
|
246
|
+
* HTML elements.
|
247
|
+
* - **htmlVoidElements** - `{Array<String>}` - A list of elements to extend the current list of
|
248
|
+
* void HTML elements; i.e. elements that do not have an end tag.
|
249
|
+
* - **svgElements** - `{Array<String>}` - A list of elements to extend the current list of SVG
|
250
|
+
* elements. The list of SVG elements is only taken into account if SVG is
|
251
|
+
* {@link ngSanitize.$sanitizeProvider#enableSvg enabled} for `$sanitize`.
|
252
|
+
*
|
253
|
+
* Passing an array (`[...]`) is equivalent to passing `{htmlElements: [...]}`.
|
254
|
+
*
|
255
|
+
* @return {$sanitizeProvider} Returns self for chaining.
|
256
|
+
*/
|
257
|
+
this.addValidElements = function(elements) {
|
258
|
+
if (!hasBeenInstantiated) {
|
259
|
+
if (isArray(elements)) {
|
260
|
+
elements = {htmlElements: elements};
|
261
|
+
}
|
262
|
+
|
263
|
+
addElementsTo(svgElements, elements.svgElements);
|
264
|
+
addElementsTo(voidElements, elements.htmlVoidElements);
|
265
|
+
addElementsTo(validElements, elements.htmlVoidElements);
|
266
|
+
addElementsTo(validElements, elements.htmlElements);
|
267
|
+
}
|
211
268
|
|
212
|
-
|
213
|
-
|
214
|
-
// Match everything outside of normal chars and " (quote character)
|
215
|
-
NON_ALPHANUMERIC_REGEXP = /([^\#-~ |!])/g;
|
216
|
-
|
217
|
-
|
218
|
-
// Good source of info about elements and attributes
|
219
|
-
// http://dev.w3.org/html5/spec/Overview.html#semantics
|
220
|
-
// http://simon.html5.org/html-elements
|
221
|
-
|
222
|
-
// Safe Void Elements - HTML5
|
223
|
-
// http://dev.w3.org/html5/spec/Overview.html#void-elements
|
224
|
-
var voidElements = toMap("area,br,col,hr,img,wbr");
|
225
|
-
|
226
|
-
// Elements that you can, intentionally, leave open (and which close themselves)
|
227
|
-
// http://dev.w3.org/html5/spec/Overview.html#optional-tags
|
228
|
-
var optionalEndTagBlockElements = toMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),
|
229
|
-
optionalEndTagInlineElements = toMap("rp,rt"),
|
230
|
-
optionalEndTagElements = angular.extend({},
|
231
|
-
optionalEndTagInlineElements,
|
232
|
-
optionalEndTagBlockElements);
|
233
|
-
|
234
|
-
// Safe Block Elements - HTML5
|
235
|
-
var blockElements = angular.extend({}, optionalEndTagBlockElements, toMap("address,article," +
|
236
|
-
"aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5," +
|
237
|
-
"h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul"));
|
238
|
-
|
239
|
-
// Inline Elements - HTML5
|
240
|
-
var inlineElements = angular.extend({}, optionalEndTagInlineElements, toMap("a,abbr,acronym,b," +
|
241
|
-
"bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s," +
|
242
|
-
"samp,small,span,strike,strong,sub,sup,time,tt,u,var"));
|
243
|
-
|
244
|
-
// SVG Elements
|
245
|
-
// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Elements
|
246
|
-
// Note: the elements animate,animateColor,animateMotion,animateTransform,set are intentionally omitted.
|
247
|
-
// They can potentially allow for arbitrary javascript to be executed. See #11290
|
248
|
-
var svgElements = toMap("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph," +
|
249
|
-
"hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline," +
|
250
|
-
"radialGradient,rect,stop,svg,switch,text,title,tspan");
|
251
|
-
|
252
|
-
// Blocked Elements (will be stripped)
|
253
|
-
var blockedElements = toMap("script,style");
|
254
|
-
|
255
|
-
var validElements = angular.extend({},
|
256
|
-
voidElements,
|
257
|
-
blockElements,
|
258
|
-
inlineElements,
|
259
|
-
optionalEndTagElements);
|
260
|
-
|
261
|
-
//Attributes that have href and hence need to be sanitized
|
262
|
-
var uriAttrs = toMap("background,cite,href,longdesc,src,xlink:href");
|
263
|
-
|
264
|
-
var htmlAttrs = toMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' +
|
265
|
-
'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' +
|
266
|
-
'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,' +
|
267
|
-
'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,' +
|
268
|
-
'valign,value,vspace,width');
|
269
|
-
|
270
|
-
// SVG attributes (without "id" and "name" attributes)
|
271
|
-
// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Attributes
|
272
|
-
var svgAttrs = toMap('accent-height,accumulate,additive,alphabetic,arabic-form,ascent,' +
|
273
|
-
'baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,' +
|
274
|
-
'cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,' +
|
275
|
-
'font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,' +
|
276
|
-
'height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,' +
|
277
|
-
'marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,' +
|
278
|
-
'max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,' +
|
279
|
-
'path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,' +
|
280
|
-
'requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,' +
|
281
|
-
'stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,' +
|
282
|
-
'stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,' +
|
283
|
-
'stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,' +
|
284
|
-
'underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,' +
|
285
|
-
'width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,' +
|
286
|
-
'xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan', true);
|
287
|
-
|
288
|
-
var validAttrs = angular.extend({},
|
289
|
-
uriAttrs,
|
290
|
-
svgAttrs,
|
291
|
-
htmlAttrs);
|
292
|
-
|
293
|
-
function toMap(str, lowercaseKeys) {
|
294
|
-
var obj = {}, items = str.split(','), i;
|
295
|
-
for (i = 0; i < items.length; i++) {
|
296
|
-
obj[lowercaseKeys ? angular.lowercase(items[i]) : items[i]] = true;
|
297
|
-
}
|
298
|
-
return obj;
|
299
|
-
}
|
269
|
+
return this;
|
270
|
+
};
|
300
271
|
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
272
|
+
|
273
|
+
/**
|
274
|
+
* @ngdoc method
|
275
|
+
* @name $sanitizeProvider#addValidAttrs
|
276
|
+
* @kind function
|
277
|
+
*
|
278
|
+
* @description
|
279
|
+
* Extends the built-in list of valid attributes, i.e. attributes that are considered safe and are
|
280
|
+
* not stripped off during sanitization.
|
281
|
+
*
|
282
|
+
* **Note**:
|
283
|
+
* The new attributes will not be treated as URI attributes, which means their values will not be
|
284
|
+
* sanitized as URIs using `$compileProvider`'s
|
285
|
+
* {@link ng.$compileProvider#aHrefSanitizationWhitelist aHrefSanitizationWhitelist} and
|
286
|
+
* {@link ng.$compileProvider#imgSrcSanitizationWhitelist imgSrcSanitizationWhitelist}.
|
287
|
+
*
|
288
|
+
* <div class="alert alert-info">
|
289
|
+
* This method must be called during the {@link angular.Module#config config} phase. Once the
|
290
|
+
* `$sanitize` service has been instantiated, this method has no effect.
|
291
|
+
* </div>
|
292
|
+
*
|
293
|
+
* <div class="alert alert-warning">
|
294
|
+
* Keep in mind that extending the built-in list of attributes may expose your app to XSS or
|
295
|
+
* other vulnerabilities. Be very mindful of the attributes you add.
|
296
|
+
* </div>
|
297
|
+
*
|
298
|
+
* @param {Array<String>} attrs - A list of valid attributes.
|
299
|
+
*
|
300
|
+
* @returns {$sanitizeProvider} Returns self for chaining.
|
301
|
+
*/
|
302
|
+
this.addValidAttrs = function(attrs) {
|
303
|
+
if (!hasBeenInstantiated) {
|
304
|
+
extend(validAttrs, arrayToMap(attrs, true));
|
305
|
+
}
|
306
|
+
return this;
|
307
|
+
};
|
308
|
+
|
309
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
310
|
+
// Private stuff
|
311
|
+
//////////////////////////////////////////////////////////////////////////////////////////////////
|
312
|
+
|
313
|
+
bind = angular.bind;
|
314
|
+
extend = angular.extend;
|
315
|
+
forEach = angular.forEach;
|
316
|
+
isArray = angular.isArray;
|
317
|
+
isDefined = angular.isDefined;
|
318
|
+
lowercase = angular.$$lowercase;
|
319
|
+
noop = angular.noop;
|
320
|
+
|
321
|
+
htmlParser = htmlParserImpl;
|
322
|
+
htmlSanitizeWriter = htmlSanitizeWriterImpl;
|
323
|
+
|
324
|
+
nodeContains = window.Node.prototype.contains || /** @this */ function(arg) {
|
325
|
+
// eslint-disable-next-line no-bitwise
|
326
|
+
return !!(this.compareDocumentPosition(arg) & 16);
|
327
|
+
};
|
328
|
+
|
329
|
+
// Regular Expressions for parsing tags and attributes
|
330
|
+
var SURROGATE_PAIR_REGEXP = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
|
331
|
+
// Match everything outside of normal chars and " (quote character)
|
332
|
+
NON_ALPHANUMERIC_REGEXP = /([^#-~ |!])/g;
|
333
|
+
|
334
|
+
|
335
|
+
// Good source of info about elements and attributes
|
336
|
+
// http://dev.w3.org/html5/spec/Overview.html#semantics
|
337
|
+
// http://simon.html5.org/html-elements
|
338
|
+
|
339
|
+
// Safe Void Elements - HTML5
|
340
|
+
// http://dev.w3.org/html5/spec/Overview.html#void-elements
|
341
|
+
var voidElements = stringToMap('area,br,col,hr,img,wbr');
|
342
|
+
|
343
|
+
// Elements that you can, intentionally, leave open (and which close themselves)
|
344
|
+
// http://dev.w3.org/html5/spec/Overview.html#optional-tags
|
345
|
+
var optionalEndTagBlockElements = stringToMap('colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr'),
|
346
|
+
optionalEndTagInlineElements = stringToMap('rp,rt'),
|
347
|
+
optionalEndTagElements = extend({},
|
348
|
+
optionalEndTagInlineElements,
|
349
|
+
optionalEndTagBlockElements);
|
350
|
+
|
351
|
+
// Safe Block Elements - HTML5
|
352
|
+
var blockElements = extend({}, optionalEndTagBlockElements, stringToMap('address,article,' +
|
353
|
+
'aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,' +
|
354
|
+
'h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul'));
|
355
|
+
|
356
|
+
// Inline Elements - HTML5
|
357
|
+
var inlineElements = extend({}, optionalEndTagInlineElements, stringToMap('a,abbr,acronym,b,' +
|
358
|
+
'bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,' +
|
359
|
+
'samp,small,span,strike,strong,sub,sup,time,tt,u,var'));
|
360
|
+
|
361
|
+
// SVG Elements
|
362
|
+
// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Elements
|
363
|
+
// Note: the elements animate,animateColor,animateMotion,animateTransform,set are intentionally omitted.
|
364
|
+
// They can potentially allow for arbitrary javascript to be executed. See #11290
|
365
|
+
var svgElements = stringToMap('circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,' +
|
366
|
+
'hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,' +
|
367
|
+
'radialGradient,rect,stop,svg,switch,text,title,tspan');
|
368
|
+
|
369
|
+
// Blocked Elements (will be stripped)
|
370
|
+
var blockedElements = stringToMap('script,style');
|
371
|
+
|
372
|
+
var validElements = extend({},
|
373
|
+
voidElements,
|
374
|
+
blockElements,
|
375
|
+
inlineElements,
|
376
|
+
optionalEndTagElements);
|
377
|
+
|
378
|
+
//Attributes that have href and hence need to be sanitized
|
379
|
+
var uriAttrs = stringToMap('background,cite,href,longdesc,src,xlink:href,xml:base');
|
380
|
+
|
381
|
+
var htmlAttrs = stringToMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' +
|
382
|
+
'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' +
|
383
|
+
'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,' +
|
384
|
+
'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,' +
|
385
|
+
'valign,value,vspace,width');
|
386
|
+
|
387
|
+
// SVG attributes (without "id" and "name" attributes)
|
388
|
+
// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Attributes
|
389
|
+
var svgAttrs = stringToMap('accent-height,accumulate,additive,alphabetic,arabic-form,ascent,' +
|
390
|
+
'baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,' +
|
391
|
+
'cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,' +
|
392
|
+
'font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,' +
|
393
|
+
'height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,' +
|
394
|
+
'marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,' +
|
395
|
+
'max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,' +
|
396
|
+
'path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,' +
|
397
|
+
'requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,' +
|
398
|
+
'stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,' +
|
399
|
+
'stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,' +
|
400
|
+
'stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,' +
|
401
|
+
'underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,' +
|
402
|
+
'width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,' +
|
403
|
+
'xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan', true);
|
404
|
+
|
405
|
+
var validAttrs = extend({},
|
406
|
+
uriAttrs,
|
407
|
+
svgAttrs,
|
408
|
+
htmlAttrs);
|
409
|
+
|
410
|
+
function stringToMap(str, lowercaseKeys) {
|
411
|
+
return arrayToMap(str.split(','), lowercaseKeys);
|
308
412
|
}
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
var html = doc.createElement('html');
|
317
|
-
inertBodyElement = doc.createElement('body');
|
318
|
-
html.appendChild(inertBodyElement);
|
319
|
-
doc.appendChild(html);
|
413
|
+
|
414
|
+
function arrayToMap(items, lowercaseKeys) {
|
415
|
+
var obj = {}, i;
|
416
|
+
for (i = 0; i < items.length; i++) {
|
417
|
+
obj[lowercaseKeys ? lowercase(items[i]) : items[i]] = true;
|
418
|
+
}
|
419
|
+
return obj;
|
320
420
|
}
|
321
|
-
})(window);
|
322
421
|
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
* end: function(tag) {},
|
328
|
-
* chars: function(text) {},
|
329
|
-
* comment: function(text) {}
|
330
|
-
* });
|
331
|
-
*
|
332
|
-
* @param {string} html string
|
333
|
-
* @param {object} handler
|
334
|
-
*/
|
335
|
-
function htmlParser(html, handler) {
|
336
|
-
if (html === null || html === undefined) {
|
337
|
-
html = '';
|
338
|
-
} else if (typeof html !== 'string') {
|
339
|
-
html = '' + html;
|
422
|
+
function addElementsTo(elementsMap, newElements) {
|
423
|
+
if (newElements && newElements.length) {
|
424
|
+
extend(elementsMap, arrayToMap(newElements));
|
425
|
+
}
|
340
426
|
}
|
341
|
-
inertBodyElement.innerHTML = html;
|
342
427
|
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
428
|
+
/**
|
429
|
+
* Create an inert document that contains the dirty HTML that needs sanitizing
|
430
|
+
* Depending upon browser support we use one of three strategies for doing this.
|
431
|
+
* Support: Safari 10.x -> XHR strategy
|
432
|
+
* Support: Firefox -> DomParser strategy
|
433
|
+
*/
|
434
|
+
var getInertBodyElement /* function(html: string): HTMLBodyElement */ = (function(window, document) {
|
435
|
+
var inertDocument;
|
436
|
+
if (document && document.implementation) {
|
437
|
+
inertDocument = document.implementation.createHTMLDocument('inert');
|
438
|
+
} else {
|
439
|
+
throw $sanitizeMinErr('noinert', 'Can\'t create an inert html document');
|
348
440
|
}
|
349
|
-
|
441
|
+
var inertBodyElement = (inertDocument.documentElement || inertDocument.getDocumentElement()).querySelector('body');
|
350
442
|
|
351
|
-
//
|
352
|
-
|
353
|
-
|
443
|
+
// Check for the Safari 10.1 bug - which allows JS to run inside the SVG G element
|
444
|
+
inertBodyElement.innerHTML = '<svg><g onload="this.parentNode.remove()"></g></svg>';
|
445
|
+
if (!inertBodyElement.querySelector('svg')) {
|
446
|
+
return getInertBodyElement_XHR;
|
447
|
+
} else {
|
448
|
+
// Check for the Firefox bug - which prevents the inner img JS from being sanitized
|
449
|
+
inertBodyElement.innerHTML = '<svg><p><style><img src="</style><img src=x onerror=alert(1)//">';
|
450
|
+
if (inertBodyElement.querySelector('svg img')) {
|
451
|
+
return getInertBodyElement_DOMParser;
|
452
|
+
} else {
|
453
|
+
return getInertBodyElement_InertDocument;
|
454
|
+
}
|
354
455
|
}
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
456
|
+
|
457
|
+
function getInertBodyElement_XHR(html) {
|
458
|
+
// We add this dummy element to ensure that the rest of the content is parsed as expected
|
459
|
+
// e.g. leading whitespace is maintained and tags like `<meta>` do not get hoisted to the `<head>` tag.
|
460
|
+
html = '<remove></remove>' + html;
|
461
|
+
try {
|
462
|
+
html = encodeURI(html);
|
463
|
+
} catch (e) {
|
464
|
+
return undefined;
|
465
|
+
}
|
466
|
+
var xhr = new window.XMLHttpRequest();
|
467
|
+
xhr.responseType = 'document';
|
468
|
+
xhr.open('GET', 'data:text/html;charset=utf-8,' + html, false);
|
469
|
+
xhr.send(null);
|
470
|
+
var body = xhr.response.body;
|
471
|
+
body.firstChild.remove();
|
472
|
+
return body;
|
368
473
|
}
|
369
474
|
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
475
|
+
function getInertBodyElement_DOMParser(html) {
|
476
|
+
// We add this dummy element to ensure that the rest of the content is parsed as expected
|
477
|
+
// e.g. leading whitespace is maintained and tags like `<meta>` do not get hoisted to the `<head>` tag.
|
478
|
+
html = '<remove></remove>' + html;
|
479
|
+
try {
|
480
|
+
var body = new window.DOMParser().parseFromString(html, 'text/html').body;
|
481
|
+
body.firstChild.remove();
|
482
|
+
return body;
|
483
|
+
} catch (e) {
|
484
|
+
return undefined;
|
374
485
|
}
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
486
|
+
}
|
487
|
+
|
488
|
+
function getInertBodyElement_InertDocument(html) {
|
489
|
+
inertBodyElement.innerHTML = html;
|
490
|
+
|
491
|
+
// Support: IE 9-11 only
|
492
|
+
// strip custom-namespaced attributes on IE<=11
|
493
|
+
if (document.documentMode) {
|
494
|
+
stripCustomNsAttrs(inertBodyElement);
|
495
|
+
}
|
496
|
+
|
497
|
+
return inertBodyElement;
|
498
|
+
}
|
499
|
+
})(window, window.document);
|
500
|
+
|
501
|
+
/**
|
502
|
+
* @example
|
503
|
+
* htmlParser(htmlString, {
|
504
|
+
* start: function(tag, attrs) {},
|
505
|
+
* end: function(tag) {},
|
506
|
+
* chars: function(text) {},
|
507
|
+
* comment: function(text) {}
|
508
|
+
* });
|
509
|
+
*
|
510
|
+
* @param {string} html string
|
511
|
+
* @param {object} handler
|
512
|
+
*/
|
513
|
+
function htmlParserImpl(html, handler) {
|
514
|
+
if (html === null || html === undefined) {
|
515
|
+
html = '';
|
516
|
+
} else if (typeof html !== 'string') {
|
517
|
+
html = '' + html;
|
518
|
+
}
|
519
|
+
|
520
|
+
var inertBodyElement = getInertBodyElement(html);
|
521
|
+
if (!inertBodyElement) return '';
|
522
|
+
|
523
|
+
//mXSS protection
|
524
|
+
var mXSSAttempts = 5;
|
525
|
+
do {
|
526
|
+
if (mXSSAttempts === 0) {
|
527
|
+
throw $sanitizeMinErr('uinput', 'Failed to sanitize html because the input is unstable');
|
528
|
+
}
|
529
|
+
mXSSAttempts--;
|
530
|
+
|
531
|
+
// trigger mXSS if it is going to happen by reading and writing the innerHTML
|
532
|
+
html = inertBodyElement.innerHTML;
|
533
|
+
inertBodyElement = getInertBodyElement(html);
|
534
|
+
} while (html !== inertBodyElement.innerHTML);
|
535
|
+
|
536
|
+
var node = inertBodyElement.firstChild;
|
537
|
+
while (node) {
|
538
|
+
switch (node.nodeType) {
|
539
|
+
case 1: // ELEMENT_NODE
|
540
|
+
handler.start(node.nodeName.toLowerCase(), attrToMap(node.attributes));
|
541
|
+
break;
|
542
|
+
case 3: // TEXT NODE
|
543
|
+
handler.chars(node.textContent);
|
544
|
+
break;
|
545
|
+
}
|
546
|
+
|
547
|
+
var nextNode;
|
548
|
+
if (!(nextNode = node.firstChild)) {
|
549
|
+
if (node.nodeType === 1) {
|
550
|
+
handler.end(node.nodeName.toLowerCase());
|
551
|
+
}
|
552
|
+
nextNode = getNonDescendant('nextSibling', node);
|
553
|
+
if (!nextNode) {
|
554
|
+
while (nextNode == null) {
|
555
|
+
node = getNonDescendant('parentNode', node);
|
556
|
+
if (node === inertBodyElement) break;
|
557
|
+
nextNode = getNonDescendant('nextSibling', node);
|
558
|
+
if (node.nodeType === 1) {
|
559
|
+
handler.end(node.nodeName.toLowerCase());
|
560
|
+
}
|
383
561
|
}
|
384
562
|
}
|
385
563
|
}
|
564
|
+
node = nextNode;
|
386
565
|
}
|
387
|
-
node = nextNode;
|
388
|
-
}
|
389
566
|
|
390
|
-
|
391
|
-
|
567
|
+
while ((node = inertBodyElement.firstChild)) {
|
568
|
+
inertBodyElement.removeChild(node);
|
569
|
+
}
|
392
570
|
}
|
393
|
-
}
|
394
571
|
|
395
|
-
function attrToMap(attrs) {
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
572
|
+
function attrToMap(attrs) {
|
573
|
+
var map = {};
|
574
|
+
for (var i = 0, ii = attrs.length; i < ii; i++) {
|
575
|
+
var attr = attrs[i];
|
576
|
+
map[attr.name] = attr.value;
|
577
|
+
}
|
578
|
+
return map;
|
400
579
|
}
|
401
|
-
return map;
|
402
|
-
}
|
403
580
|
|
404
581
|
|
405
|
-
/**
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
function encodeEntities(value) {
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
}
|
582
|
+
/**
|
583
|
+
* Escapes all potentially dangerous characters, so that the
|
584
|
+
* resulting string can be safely inserted into attribute or
|
585
|
+
* element text.
|
586
|
+
* @param value
|
587
|
+
* @returns {string} escaped text
|
588
|
+
*/
|
589
|
+
function encodeEntities(value) {
|
590
|
+
return value.
|
591
|
+
replace(/&/g, '&').
|
592
|
+
replace(SURROGATE_PAIR_REGEXP, function(value) {
|
593
|
+
var hi = value.charCodeAt(0);
|
594
|
+
var low = value.charCodeAt(1);
|
595
|
+
return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';';
|
596
|
+
}).
|
597
|
+
replace(NON_ALPHANUMERIC_REGEXP, function(value) {
|
598
|
+
return '&#' + value.charCodeAt(0) + ';';
|
599
|
+
}).
|
600
|
+
replace(/</g, '<').
|
601
|
+
replace(/>/g, '>');
|
602
|
+
}
|
426
603
|
|
427
|
-
/**
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
function
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
604
|
+
/**
|
605
|
+
* create an HTML/XML writer which writes to buffer
|
606
|
+
* @param {Array} buf use buf.join('') to get out sanitized html string
|
607
|
+
* @returns {object} in the form of {
|
608
|
+
* start: function(tag, attrs) {},
|
609
|
+
* end: function(tag) {},
|
610
|
+
* chars: function(text) {},
|
611
|
+
* comment: function(text) {}
|
612
|
+
* }
|
613
|
+
*/
|
614
|
+
function htmlSanitizeWriterImpl(buf, uriValidator) {
|
615
|
+
var ignoreCurrentElement = false;
|
616
|
+
var out = bind(buf, buf.push);
|
617
|
+
return {
|
618
|
+
start: function(tag, attrs) {
|
619
|
+
tag = lowercase(tag);
|
620
|
+
if (!ignoreCurrentElement && blockedElements[tag]) {
|
621
|
+
ignoreCurrentElement = tag;
|
622
|
+
}
|
623
|
+
if (!ignoreCurrentElement && validElements[tag] === true) {
|
624
|
+
out('<');
|
625
|
+
out(tag);
|
626
|
+
forEach(attrs, function(value, key) {
|
627
|
+
var lkey = lowercase(key);
|
628
|
+
var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background');
|
629
|
+
if (validAttrs[lkey] === true &&
|
630
|
+
(uriAttrs[lkey] !== true || uriValidator(value, isImage))) {
|
631
|
+
out(' ');
|
632
|
+
out(key);
|
633
|
+
out('="');
|
634
|
+
out(encodeEntities(value));
|
635
|
+
out('"');
|
636
|
+
}
|
637
|
+
});
|
638
|
+
out('>');
|
639
|
+
}
|
640
|
+
},
|
641
|
+
end: function(tag) {
|
642
|
+
tag = lowercase(tag);
|
643
|
+
if (!ignoreCurrentElement && validElements[tag] === true && voidElements[tag] !== true) {
|
644
|
+
out('</');
|
645
|
+
out(tag);
|
646
|
+
out('>');
|
647
|
+
}
|
648
|
+
// eslint-disable-next-line eqeqeq
|
649
|
+
if (tag == ignoreCurrentElement) {
|
650
|
+
ignoreCurrentElement = false;
|
651
|
+
}
|
652
|
+
},
|
653
|
+
chars: function(chars) {
|
654
|
+
if (!ignoreCurrentElement) {
|
655
|
+
out(encodeEntities(chars));
|
656
|
+
}
|
445
657
|
}
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
658
|
+
};
|
659
|
+
}
|
660
|
+
|
661
|
+
|
662
|
+
/**
|
663
|
+
* When IE9-11 comes across an unknown namespaced attribute e.g. 'xlink:foo' it adds 'xmlns:ns1' attribute to declare
|
664
|
+
* ns1 namespace and prefixes the attribute with 'ns1' (e.g. 'ns1:xlink:foo'). This is undesirable since we don't want
|
665
|
+
* to allow any of these custom attributes. This method strips them all.
|
666
|
+
*
|
667
|
+
* @param node Root element to process
|
668
|
+
*/
|
669
|
+
function stripCustomNsAttrs(node) {
|
670
|
+
while (node) {
|
671
|
+
if (node.nodeType === window.Node.ELEMENT_NODE) {
|
672
|
+
var attrs = node.attributes;
|
673
|
+
for (var i = 0, l = attrs.length; i < l; i++) {
|
674
|
+
var attrNode = attrs[i];
|
675
|
+
var attrName = attrNode.name.toLowerCase();
|
676
|
+
if (attrName === 'xmlns:ns1' || attrName.lastIndexOf('ns1:', 0) === 0) {
|
677
|
+
node.removeAttributeNode(attrNode);
|
678
|
+
i--;
|
679
|
+
l--;
|
459
680
|
}
|
460
|
-
}
|
461
|
-
out('>');
|
462
|
-
}
|
463
|
-
},
|
464
|
-
end: function(tag) {
|
465
|
-
tag = angular.lowercase(tag);
|
466
|
-
if (!ignoreCurrentElement && validElements[tag] === true && voidElements[tag] !== true) {
|
467
|
-
out('</');
|
468
|
-
out(tag);
|
469
|
-
out('>');
|
470
|
-
}
|
471
|
-
if (tag == ignoreCurrentElement) {
|
472
|
-
ignoreCurrentElement = false;
|
473
|
-
}
|
474
|
-
},
|
475
|
-
chars: function(chars) {
|
476
|
-
if (!ignoreCurrentElement) {
|
477
|
-
out(encodeEntities(chars));
|
681
|
+
}
|
478
682
|
}
|
479
|
-
}
|
480
|
-
};
|
481
|
-
}
|
482
|
-
|
483
683
|
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
* to allow any of these custom attributes. This method strips them all.
|
488
|
-
*
|
489
|
-
* @param node Root element to process
|
490
|
-
*/
|
491
|
-
function stripCustomNsAttrs(node) {
|
492
|
-
if (node.nodeType === window.Node.ELEMENT_NODE) {
|
493
|
-
var attrs = node.attributes;
|
494
|
-
for (var i = 0, l = attrs.length; i < l; i++) {
|
495
|
-
var attrNode = attrs[i];
|
496
|
-
var attrName = attrNode.name.toLowerCase();
|
497
|
-
if (attrName === 'xmlns:ns1' || attrName.indexOf('ns1:') === 0) {
|
498
|
-
node.removeAttributeNode(attrNode);
|
499
|
-
i--;
|
500
|
-
l--;
|
684
|
+
var nextNode = node.firstChild;
|
685
|
+
if (nextNode) {
|
686
|
+
stripCustomNsAttrs(nextNode);
|
501
687
|
}
|
502
|
-
}
|
503
|
-
}
|
504
688
|
|
505
|
-
|
506
|
-
|
507
|
-
stripCustomNsAttrs(nextNode);
|
689
|
+
node = getNonDescendant('nextSibling', node);
|
690
|
+
}
|
508
691
|
}
|
509
692
|
|
510
|
-
|
511
|
-
|
512
|
-
|
693
|
+
function getNonDescendant(propName, node) {
|
694
|
+
// An element is clobbered if its `propName` property points to one of its descendants
|
695
|
+
var nextNode = node[propName];
|
696
|
+
if (nextNode && nodeContains.call(node, nextNode)) {
|
697
|
+
throw $sanitizeMinErr('elclob', 'Failed to sanitize html because the element is clobbered: {0}', node.outerHTML || node.outerText);
|
698
|
+
}
|
699
|
+
return nextNode;
|
513
700
|
}
|
514
701
|
}
|
515
702
|
|
703
|
+
function sanitizeText(chars) {
|
704
|
+
var buf = [];
|
705
|
+
var writer = htmlSanitizeWriter(buf, noop);
|
706
|
+
writer.chars(chars);
|
707
|
+
return buf.join('');
|
708
|
+
}
|
516
709
|
|
517
710
|
|
518
711
|
// define ngSanitize module and register $sanitize service
|
519
|
-
angular.module('ngSanitize', [])
|
520
|
-
|
521
|
-
|
712
|
+
angular.module('ngSanitize', [])
|
713
|
+
.provider('$sanitize', $SanitizeProvider)
|
714
|
+
.info({ angularVersion: '1.7.9' });
|
522
715
|
|
523
716
|
/**
|
524
717
|
* @ngdoc filter
|
@@ -526,13 +719,13 @@ angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider);
|
|
526
719
|
* @kind function
|
527
720
|
*
|
528
721
|
* @description
|
529
|
-
* Finds links in text input and turns them into html links. Supports `http/https/ftp/mailto` and
|
722
|
+
* Finds links in text input and turns them into html links. Supports `http/https/ftp/sftp/mailto` and
|
530
723
|
* plain email address links.
|
531
724
|
*
|
532
725
|
* Requires the {@link ngSanitize `ngSanitize`} module to be installed.
|
533
726
|
*
|
534
727
|
* @param {string} text Input text.
|
535
|
-
* @param {string} target Window (`_blank|_self|_parent|_top`) or named frame to open links in.
|
728
|
+
* @param {string} [target] Window (`_blank|_self|_parent|_top`) or named frame to open links in.
|
536
729
|
* @param {object|function(url)} [attributes] Add custom attributes to the link element.
|
537
730
|
*
|
538
731
|
* Can be one of:
|
@@ -550,7 +743,7 @@ angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider);
|
|
550
743
|
<span ng-bind-html="linky_expression | linky"></span>
|
551
744
|
*
|
552
745
|
* @example
|
553
|
-
<example module="linkyExample" deps="angular-sanitize.js">
|
746
|
+
<example module="linkyExample" deps="angular-sanitize.js" name="linky-filter">
|
554
747
|
<file name="index.html">
|
555
748
|
<div ng-controller="ExampleController">
|
556
749
|
Snippet: <textarea ng-model="snippet" cols="60" rows="3"></textarea>
|
@@ -598,10 +791,10 @@ angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider);
|
|
598
791
|
angular.module('linkyExample', ['ngSanitize'])
|
599
792
|
.controller('ExampleController', ['$scope', function($scope) {
|
600
793
|
$scope.snippet =
|
601
|
-
'Pretty text with some links:\n'+
|
602
|
-
'http://angularjs.org/,\n'+
|
603
|
-
'mailto:us@somewhere.org,\n'+
|
604
|
-
'another@somewhere.org,\n'+
|
794
|
+
'Pretty text with some links:\n' +
|
795
|
+
'http://angularjs.org/,\n' +
|
796
|
+
'mailto:us@somewhere.org,\n' +
|
797
|
+
'another@somewhere.org,\n' +
|
605
798
|
'and one more: ftp://127.0.0.1/.';
|
606
799
|
$scope.snippetWithSingleURL = 'http://angularjs.org/';
|
607
800
|
}]);
|
@@ -649,16 +842,24 @@ angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider);
|
|
649
842
|
*/
|
650
843
|
angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) {
|
651
844
|
var LINKY_URL_REGEXP =
|
652
|
-
/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,
|
845
|
+
/((s?ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,
|
653
846
|
MAILTO_REGEXP = /^mailto:/i;
|
654
847
|
|
655
848
|
var linkyMinErr = angular.$$minErr('linky');
|
849
|
+
var isDefined = angular.isDefined;
|
850
|
+
var isFunction = angular.isFunction;
|
851
|
+
var isObject = angular.isObject;
|
656
852
|
var isString = angular.isString;
|
657
853
|
|
658
854
|
return function(text, target, attributes) {
|
659
855
|
if (text == null || text === '') return text;
|
660
856
|
if (!isString(text)) throw linkyMinErr('notstring', 'Expected string but received: {0}', text);
|
661
857
|
|
858
|
+
var attributesFn =
|
859
|
+
isFunction(attributes) ? attributes :
|
860
|
+
isObject(attributes) ? function getAttributesObject() {return attributes;} :
|
861
|
+
function getEmptyAttributesObject() {return {};};
|
862
|
+
|
662
863
|
var match;
|
663
864
|
var raw = text;
|
664
865
|
var html = [];
|
@@ -687,19 +888,14 @@ angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) {
|
|
687
888
|
}
|
688
889
|
|
689
890
|
function addLink(url, text) {
|
690
|
-
var key;
|
891
|
+
var key, linkAttributes = attributesFn(url);
|
691
892
|
html.push('<a ');
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
if (angular.isObject(attributes)) {
|
696
|
-
for (key in attributes) {
|
697
|
-
html.push(key + '="' + attributes[key] + '" ');
|
698
|
-
}
|
699
|
-
} else {
|
700
|
-
attributes = {};
|
893
|
+
|
894
|
+
for (key in linkAttributes) {
|
895
|
+
html.push(key + '="' + linkAttributes[key] + '" ');
|
701
896
|
}
|
702
|
-
|
897
|
+
|
898
|
+
if (isDefined(target) && !('target' in linkAttributes)) {
|
703
899
|
html.push('target="',
|
704
900
|
target,
|
705
901
|
'" ');
|