katello 3.15.3.1 → 3.16.0.rc1

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.

Files changed (1059) hide show
  1. checksums.yaml +5 -5
  2. data/app/assets/javascripts/katello/common/vendor.js +6 -5
  3. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +2 -3
  4. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +1 -1
  5. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +13 -9
  6. data/app/controllers/katello/api/v2/activation_keys_controller.rb +5 -8
  7. data/app/controllers/katello/api/v2/api_controller.rb +14 -0
  8. data/app/controllers/katello/api/v2/capsule_content_controller.rb +2 -2
  9. data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
  10. data/app/controllers/katello/api/v2/content_view_components_controller.rb +2 -2
  11. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
  12. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
  13. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -1
  14. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +3 -9
  15. data/app/controllers/katello/api/v2/content_views_controller.rb +3 -3
  16. data/app/controllers/katello/api/v2/environments_controller.rb +3 -3
  17. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -1
  18. data/app/controllers/katello/api/v2/host_collections_controller.rb +3 -4
  19. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +5 -22
  20. data/app/controllers/katello/api/v2/host_tracer_controller.rb +39 -2
  21. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +7 -2
  22. data/app/controllers/katello/api/v2/organizations_controller.rb +7 -14
  23. data/app/controllers/katello/api/v2/packages_controller.rb +13 -13
  24. data/app/controllers/katello/api/v2/products_controller.rb +2 -1
  25. data/app/controllers/katello/api/v2/repositories_controller.rb +7 -11
  26. data/app/controllers/katello/api/v2/repository_sets_controller.rb +1 -1
  27. data/app/controllers/katello/api/v2/subscriptions_controller.rb +5 -31
  28. data/app/controllers/katello/application_controller.rb +1 -1
  29. data/app/controllers/katello/concerns/api/api_controller.rb +2 -1
  30. data/app/controllers/katello/concerns/api/v2/hostgroups_controller_extensions.rb +1 -1
  31. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +6 -1
  32. data/app/controllers/katello/concerns/api/v2/smart_proxies_controller_extensions.rb +1 -1
  33. data/app/controllers/katello/remote_execution_controller.rb +9 -1
  34. data/app/controllers/katello/sync_management_controller.rb +1 -1
  35. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +1 -1
  36. data/app/helpers/katello/katello_urls_helper.rb +1 -1
  37. data/app/helpers/katello/layout_helper.rb +1 -3
  38. data/app/helpers/katello/subscription_mailer_helper.rb +23 -0
  39. data/app/jobs/create_expired_manifest_notifications.rb +11 -0
  40. data/app/lib/actions/candlepin/consumer/remove_subscription.rb +1 -1
  41. data/app/lib/actions/katello/activation_key/update.rb +1 -1
  42. data/app/lib/actions/katello/applicability/host/generate.rb +28 -0
  43. data/app/lib/actions/katello/applicability/hosts/generate.rb +23 -0
  44. data/app/lib/actions/katello/applicability/repository/regenerate.rb +26 -0
  45. data/app/lib/actions/katello/capsule_content/sync.rb +0 -1
  46. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +0 -2
  47. data/app/lib/actions/katello/content_view/destroy.rb +3 -1
  48. data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -1
  49. data/app/lib/actions/katello/content_view/publish.rb +2 -2
  50. data/app/lib/actions/katello/content_view/remove.rb +1 -1
  51. data/app/lib/actions/katello/content_view/update.rb +1 -1
  52. data/app/lib/actions/katello/content_view_version/incremental_update.rb +6 -0
  53. data/app/lib/actions/katello/gpg_key/update.rb +1 -1
  54. data/app/lib/actions/katello/host/erratum/applicable_errata_install.rb +12 -2
  55. data/app/lib/actions/katello/host/generate_applicability.rb +16 -10
  56. data/app/lib/actions/katello/host/hypervisors_update.rb +1 -1
  57. data/app/lib/actions/katello/host/recalculate_errata_status.rb +4 -6
  58. data/app/lib/actions/katello/host/upload_profiles.rb +5 -45
  59. data/app/lib/actions/katello/organization/manifest_delete.rb +2 -1
  60. data/app/lib/actions/katello/organization/manifest_import.rb +3 -1
  61. data/app/lib/actions/katello/organization/manifest_refresh.rb +3 -1
  62. data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +0 -13
  63. data/app/lib/actions/katello/product/content_create.rb +3 -3
  64. data/app/lib/actions/katello/product/create.rb +1 -1
  65. data/app/lib/actions/katello/product/destroy.rb +1 -1
  66. data/app/lib/actions/katello/product/update.rb +1 -1
  67. data/app/lib/actions/katello/provider/update.rb +1 -1
  68. data/app/lib/actions/katello/repository/clone_contents.rb +1 -1
  69. data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -1
  70. data/app/lib/actions/katello/repository/create.rb +2 -2
  71. data/app/lib/actions/katello/repository/filtered_index_content.rb +12 -3
  72. data/app/lib/actions/katello/repository/finish_upload.rb +5 -3
  73. data/app/lib/actions/katello/repository/import_upload.rb +2 -2
  74. data/app/lib/actions/katello/repository/sync.rb +27 -14
  75. data/app/lib/actions/katello/repository/update.rb +5 -5
  76. data/app/lib/actions/katello/repository/update_redhat_repository.rb +2 -2
  77. data/app/lib/actions/katello/repository/upload_files.rb +8 -5
  78. data/app/lib/actions/katello/subscription/update.rb +1 -1
  79. data/app/lib/actions/pulp/abstract_async_task.rb +3 -5
  80. data/app/lib/actions/pulp/consumer.rb +1 -3
  81. data/app/lib/actions/pulp/consumer/content_install.rb +1 -1
  82. data/app/lib/actions/pulp/orchestration/repository/smart_proxy_sync.rb +0 -1
  83. data/app/lib/actions/pulp/orchestration/repository/upload_content.rb +2 -0
  84. data/app/lib/actions/pulp/repository/presenters/deb_presenter.rb +5 -11
  85. data/app/lib/actions/pulp/repository/presenters/docker_presenter.rb +1 -1
  86. data/app/lib/actions/pulp3/abstract_async_task.rb +3 -5
  87. data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +2 -2
  88. data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +1 -1
  89. data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +22 -13
  90. data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +8 -6
  91. data/app/lib/actions/pulp3/orphan_cleanup/delete_orphaned_migrated_repositories.rb +15 -0
  92. data/app/lib/actions/pulp3/repository/commit_upload.rb +18 -0
  93. data/app/lib/actions/pulp3/repository/import_upload.rb +5 -2
  94. data/app/lib/actions/pulp3/repository/save_publication.rb +1 -1
  95. data/app/lib/actions/pulp3/repository/save_version.rb +1 -1
  96. data/app/lib/katello/concerns/base_template_scope_extensions.rb +2 -2
  97. data/app/lib/katello/concerns/filter_sensitive_data.rb +18 -0
  98. data/app/lib/katello/foreman.rb +2 -1
  99. data/app/lib/katello/http_resource.rb +3 -5
  100. data/app/lib/katello/lazy_accessor.rb +4 -2
  101. data/app/lib/katello/messaging/connection.rb +15 -0
  102. data/app/lib/katello/messaging/received_message.rb +12 -0
  103. data/app/lib/katello/messaging/stomp_connection.rb +73 -0
  104. data/app/lib/katello/resources/candlepin/activation_key.rb +0 -1
  105. data/app/lib/katello/resources/candlepin/admin.rb +1 -1
  106. data/app/lib/katello/resources/candlepin/consumer.rb +6 -0
  107. data/app/lib/katello/resources/candlepin/content.rb +7 -1
  108. data/app/lib/katello/resources/candlepin/owner.rb +0 -9
  109. data/app/lib/katello/resources/cdn.rb +6 -1
  110. data/app/lib/katello/resources/registry.rb +1 -1
  111. data/app/lib/katello/util/cdn_var_substitutor.rb +1 -3
  112. data/app/mailers/katello/subscription_mailer.rb +35 -0
  113. data/app/models/katello/activation_key.rb +1 -0
  114. data/app/models/katello/ansible_collection.rb +1 -1
  115. data/app/models/katello/authorization/host_tracer.rb +14 -0
  116. data/app/models/katello/authorization/pool.rb +5 -1
  117. data/app/models/katello/authorization/subscription.rb +1 -3
  118. data/app/models/katello/concerns/host_managed_extensions.rb +31 -4
  119. data/app/models/katello/concerns/http_proxy_extensions.rb +7 -30
  120. data/app/models/katello/concerns/organization_extensions.rb +9 -0
  121. data/app/models/katello/concerns/pulp_database_unit.rb +61 -34
  122. data/app/models/katello/concerns/redhat_extensions.rb +2 -1
  123. data/app/models/katello/concerns/smart_proxy_extensions.rb +2 -1
  124. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -1
  125. data/app/models/katello/content.rb +2 -2
  126. data/app/models/katello/content_view.rb +3 -2
  127. data/app/models/katello/content_view_version.rb +1 -0
  128. data/app/models/katello/erratum.rb +6 -1
  129. data/app/models/katello/erratum_cve.rb +4 -0
  130. data/app/models/katello/events/generate_host_applicability.rb +27 -0
  131. data/app/models/katello/glue/candlepin/activation_key.rb +1 -1
  132. data/app/models/katello/glue/candlepin/pool.rb +5 -7
  133. data/app/models/katello/glue/candlepin/product.rb +1 -1
  134. data/app/models/katello/glue/candlepin/subscription.rb +1 -1
  135. data/app/models/katello/glue/provider.rb +5 -3
  136. data/app/models/katello/glue/pulp/repo.rb +1 -1
  137. data/app/models/katello/host/content_facet.rb +26 -4
  138. data/app/models/katello/host/subscription_facet.rb +1 -1
  139. data/app/models/katello/host_tracer.rb +8 -0
  140. data/app/models/katello/kt_environment.rb +1 -1
  141. data/app/models/katello/module_stream.rb +2 -0
  142. data/app/models/katello/module_stream_rpm.rb +6 -0
  143. data/app/models/katello/pool.rb +19 -3
  144. data/app/models/katello/product.rb +1 -1
  145. data/app/models/katello/provider.rb +2 -3
  146. data/app/models/katello/puppet_module.rb +1 -1
  147. data/app/models/katello/repository.rb +16 -11
  148. data/app/models/katello/root_repository.rb +9 -1
  149. data/app/models/katello/rpm.rb +2 -1
  150. data/app/models/katello/subscription.rb +2 -4
  151. data/app/models/katello/sync_plan.rb +2 -2
  152. data/app/models/katello/task_status.rb +1 -1
  153. data/app/models/katello/trace_status.rb +3 -3
  154. data/app/models/setting/content.rb +6 -2
  155. data/app/services/katello/applicability/applicable_content_helper.rb +121 -0
  156. data/app/services/katello/candlepin/consumer.rb +1 -1
  157. data/app/services/katello/candlepin/message_handler.rb +2 -3
  158. data/app/services/katello/candlepin_event_listener.rb +39 -53
  159. data/app/services/katello/event_daemon.rb +18 -18
  160. data/app/services/katello/event_monitor/poller_thread.rb +15 -17
  161. data/app/services/katello/product_content_importer.rb +2 -2
  162. data/app/services/katello/pulp/consumer.rb +6 -10
  163. data/app/services/katello/pulp/docker_manifest.rb +1 -1
  164. data/app/services/katello/pulp/docker_manifest_list.rb +1 -1
  165. data/app/services/katello/pulp/erratum.rb +1 -1
  166. data/app/services/katello/pulp/file_unit.rb +1 -1
  167. data/app/services/katello/pulp/module_stream.rb +1 -1
  168. data/app/services/katello/pulp/ostree_branch.rb +1 -1
  169. data/app/services/katello/pulp/package_group.rb +1 -1
  170. data/app/services/katello/pulp/pulp_content_unit.rb +4 -0
  171. data/app/services/katello/pulp/puppet_module.rb +1 -1
  172. data/app/services/katello/pulp/repository/yum.rb +3 -3
  173. data/app/services/katello/pulp/yum_metadata_file.rb +1 -1
  174. data/app/services/katello/pulp3/ansible_collection.rb +1 -1
  175. data/app/services/katello/pulp3/api/ansible_collection.rb +4 -1
  176. data/app/services/katello/pulp3/api/core.rb +20 -12
  177. data/app/services/katello/pulp3/api/docker.rb +4 -1
  178. data/app/services/katello/pulp3/api/file.rb +4 -1
  179. data/app/services/katello/pulp3/api/yum.rb +4 -1
  180. data/app/services/katello/pulp3/content.rb +2 -2
  181. data/app/services/katello/pulp3/docker_manifest.rb +1 -1
  182. data/app/services/katello/pulp3/docker_manifest_list.rb +1 -1
  183. data/app/services/katello/pulp3/docker_tag.rb +1 -1
  184. data/app/services/katello/pulp3/erratum.rb +5 -1
  185. data/app/services/katello/pulp3/file_unit.rb +1 -1
  186. data/app/services/katello/pulp3/migration.rb +2 -1
  187. data/app/services/katello/pulp3/module_stream.rb +13 -3
  188. data/app/services/katello/pulp3/package_group.rb +1 -1
  189. data/app/services/katello/pulp3/pulp_content_unit.rb +10 -0
  190. data/app/services/katello/pulp3/repository.rb +16 -11
  191. data/app/services/katello/pulp3/repository/docker.rb +1 -1
  192. data/app/services/katello/pulp3/repository/yum.rb +16 -2
  193. data/app/services/katello/pulp3/repository_mirror.rb +4 -2
  194. data/app/services/katello/pulp3/rpm.rb +23 -25
  195. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +1 -1
  196. data/app/services/katello/pulp3/smart_proxy_repository.rb +23 -3
  197. data/app/services/katello/pulp3/srpm.rb +3 -1
  198. data/app/services/katello/ui_notifications/subscriptions/expire_soon.rb +1 -1
  199. data/app/services/katello/ui_notifications/subscriptions/manifest_expired_warning.rb +63 -0
  200. data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +1 -1
  201. data/app/views/katello/api/v2/content_facet/erratum.json.rabl +1 -1
  202. data/app/views/katello/api/v2/content_facet/show.json.rabl +4 -0
  203. data/app/views/katello/api/v2/content_view_histories/show.json.rabl +2 -6
  204. data/app/views/katello/api/v2/host_subscriptions/product_content.json.rabl +2 -1
  205. data/app/views/katello/api/v2/host_tracer/base.json.rabl +6 -4
  206. data/app/views/katello/api/v2/organizations/owner_details.rabl +5 -0
  207. data/app/views/katello/api/v2/organizations/show.json.rabl +6 -1
  208. data/app/views/katello/api/v2/organizations/upstream_consumer.rabl +1 -0
  209. data/app/views/katello/subscription_mailer/subscription_expiry.html.erb +47 -0
  210. data/app/views/katello/subscription_mailer/subscription_expiry.text.erb +19 -0
  211. data/app/views/users/_subscriptions_expiring_soon_query_builder.html.erb +16 -0
  212. data/config/initializers/monkeys.rb +2 -2
  213. data/config/katello.yaml.example +4 -0
  214. data/config/routes.rb +2 -2
  215. data/config/routes/api/rhsm.rb +1 -0
  216. data/config/routes/api/v2.rb +6 -1
  217. data/config/routes/overrides.rb +1 -1
  218. data/db/functions/empty_v01.sql +7 -0
  219. data/db/functions/evr_trigger_v01.sql +9 -0
  220. data/db/functions/isalpha_v01.sql +11 -0
  221. data/db/functions/isalphanum_v01.sql +12 -0
  222. data/db/functions/isdigit_v01.sql +10 -0
  223. data/db/functions/rpmver_array_v01.sql +60 -0
  224. data/db/migrate/20131016124255_add_foreign_keys_engine.rb +1 -1
  225. data/db/migrate/20140117160939_refactor_content_views.rb +1 -1
  226. data/db/migrate/20140626204657_add_unlimited_to_activation_keys.rb +3 -3
  227. data/db/migrate/20140626204902_add_unlimited_to_host_collection.rb +3 -3
  228. data/db/migrate/20140930170628_add_errata.rb +1 -1
  229. data/db/migrate/20150119153452_update_promote_errata_email_description.rb +2 -6
  230. data/db/migrate/20150606021722_create_puppet_modules.rb +1 -1
  231. data/db/migrate/20150813185339_create_subscriptions.rb +1 -1
  232. data/db/migrate/20150826170004_add_content_facet.rb +1 -1
  233. data/db/migrate/20150930183738_migrate_content_hosts.rb +6 -8
  234. data/db/migrate/20160908234510_add_rpm_nvra.rb +1 -1
  235. data/db/migrate/20160930150810_add_smart_proxy_download_policy.rb +1 -1
  236. data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +1 -1
  237. data/db/migrate/20161026191118_fix_invalid_interfaces.rb +1 -1
  238. data/db/migrate/20180103230812_set_errata_updated_date.rb +1 -1
  239. data/db/migrate/20180410140909_add_organization_id_to_pool.rb +1 -1
  240. data/db/migrate/20180920214134_create_repository_root.rb +2 -3
  241. data/db/migrate/20190730183518_add_docker_tag_join_table.rb +1 -1
  242. data/db/migrate/20190730203334_add_docker_meta_tag_join_table.rb +1 -1
  243. data/db/migrate/20200204034123_add_pulp3_href_to_repository_erratum.rb +6 -0
  244. data/db/migrate/20200213184848_create_evr_type.rb +49 -0
  245. data/db/migrate/20200304201026_create_katello_module_stream_rpms.rb +15 -0
  246. data/db/migrate/20200506163345_add_applicability_indicesto_katello_host_available_module_streams.rb +12 -0
  247. data/db/seeds.d/106-mail_notifications.rb +8 -0
  248. data/db/seeds.d/107-enable_dynflow.rb +1 -1
  249. data/db/seeds.d/109-katello-notification-blueprints.rb +6 -0
  250. data/db/seeds.d/111-upgrade_tasks.rb +1 -2
  251. data/db/seeds.d/75-job_templates.rb +2 -2
  252. data/db/triggers/evr_insert_trigger_katello_installed_packages_v01.sql +5 -0
  253. data/db/triggers/evr_insert_trigger_katello_rpms_v01.sql +5 -0
  254. data/db/triggers/evr_update_trigger_katello_installed_packages_v01.sql +10 -0
  255. data/db/triggers/evr_update_trigger_katello_rpms_v01.sql +10 -0
  256. data/engines/bastion/app/assets/javascripts/bastion/bastion.module.js +1 -1
  257. data/engines/bastion/app/assets/javascripts/bastion/routing.module.js +1 -1
  258. data/engines/bastion/vendor/assets/javascripts/bastion/angular-animate/angular-animate.js +465 -340
  259. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af-na.js +19 -19
  260. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af-za.js +19 -19
  261. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af.js +19 -19
  262. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_agq-cm.js +2 -2
  263. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ak-gh.js +4 -4
  264. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ak.js +4 -4
  265. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_am-et.js +1 -1
  266. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_am.js +1 -1
  267. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-001.js +7 -7
  268. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ae.js +4 -4
  269. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-bh.js +6 -6
  270. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-dj.js +6 -6
  271. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-eg.js +4 -4
  272. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-er.js +4 -4
  273. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-il.js +8 -8
  274. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-iq.js +6 -6
  275. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-jo.js +6 -6
  276. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-km.js +10 -10
  277. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-kw.js +6 -6
  278. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-lb.js +6 -6
  279. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ly.js +2 -2
  280. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ma.js +4 -4
  281. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-mr.js +6 -6
  282. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-om.js +6 -6
  283. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ps.js +4 -4
  284. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-qa.js +4 -4
  285. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sa.js +4 -4
  286. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sd.js +4 -4
  287. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-so.js +6 -6
  288. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ss.js +4 -4
  289. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sy.js +6 -6
  290. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-td.js +6 -6
  291. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-tn.js +2 -2
  292. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-xb.js +125 -0
  293. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ye.js +6 -6
  294. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar.js +4 -4
  295. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_as-in.js +8 -8
  296. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_as.js +8 -8
  297. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_asa-tz.js +6 -6
  298. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_asa.js +4 -4
  299. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ast-es.js +7 -7
  300. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ast.js +7 -7
  301. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-cyrl-az.js +41 -41
  302. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-cyrl.js +41 -41
  303. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-latn-az.js +3 -3
  304. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-latn.js +3 -3
  305. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az.js +3 -3
  306. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bas-cm.js +2 -2
  307. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_be-by.js +17 -17
  308. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_be.js +17 -17
  309. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bez-tz.js +6 -6
  310. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bez.js +4 -4
  311. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bg-bg.js +10 -10
  312. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bg.js +10 -10
  313. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bm-ml.js +31 -3
  314. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn-bd.js +4 -4
  315. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn-in.js +4 -4
  316. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn.js +4 -4
  317. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo-cn.js +24 -24
  318. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo-in.js +25 -25
  319. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo.js +24 -24
  320. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_br-fr.js +12 -12
  321. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_br.js +12 -12
  322. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_brx-in.js +2 -2
  323. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_brx.js +2 -2
  324. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs-latn-ba.js +12 -12
  325. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs-latn.js +12 -12
  326. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs.js +12 -12
  327. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-ad.js +12 -12
  328. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-es.js +12 -12
  329. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-fr.js +12 -12
  330. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-it.js +12 -12
  331. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca.js +12 -12
  332. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ce-ru.js +143 -0
  333. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ce.js +143 -0
  334. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cgg-ug.js +6 -6
  335. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cgg.js +4 -4
  336. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_chr-us.js +4 -4
  337. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_chr.js +5 -5
  338. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab-iq.js +5 -5
  339. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab-ir.js +5 -5
  340. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab.js +5 -5
  341. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-iq.js +12 -12
  342. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-ir.js +9 -9
  343. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-latn-iq.js +5 -5
  344. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-latn.js +5 -5
  345. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb.js +10 -10
  346. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cs-cz.js +2 -2
  347. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cs.js +2 -2
  348. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cu-ru.js +143 -0
  349. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cu.js +143 -0
  350. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cy-gb.js +3 -3
  351. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cy.js +3 -3
  352. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da-dk.js +1 -1
  353. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da-gl.js +5 -5
  354. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da.js +1 -1
  355. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dav-ke.js +5 -5
  356. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dav.js +5 -5
  357. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-at.js +1 -1
  358. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-ch.js +1 -1
  359. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-it.js +143 -0
  360. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-li.js +1 -1
  361. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dje-ne.js +2 -2
  362. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dua-cm.js +2 -2
  363. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dyo-sn.js +2 -2
  364. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ebu-ke.js +5 -5
  365. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ebu.js +5 -5
  366. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ee-tg.js +6 -6
  367. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-001.js +1 -1
  368. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-150.js +7 -7
  369. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ai.js +4 -4
  370. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-at.js +143 -0
  371. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-au.js +22 -22
  372. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-be.js +4 -4
  373. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-bi.js +143 -0
  374. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-bw.js +4 -4
  375. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cc.js +4 -4
  376. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ch.js +143 -0
  377. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ck.js +4 -4
  378. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cm.js +6 -6
  379. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cx.js +4 -4
  380. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cy.js +143 -0
  381. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-de.js +143 -0
  382. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-dg.js +4 -4
  383. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-dk.js +143 -0
  384. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-fi.js +143 -0
  385. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-fk.js +4 -4
  386. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gb.js +2 -2
  387. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gg.js +4 -4
  388. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gi.js +4 -4
  389. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gy.js +2 -2
  390. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ie.js +4 -4
  391. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-il.js +143 -0
  392. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-im.js +4 -4
  393. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-io.js +4 -4
  394. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-je.js +4 -4
  395. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-jm.js +2 -2
  396. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ke.js +4 -4
  397. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mg.js +6 -6
  398. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ms.js +4 -4
  399. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mt.js +4 -4
  400. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mu.js +6 -6
  401. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nf.js +4 -4
  402. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nl.js +143 -0
  403. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nr.js +4 -4
  404. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nu.js +4 -4
  405. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-pk.js +2 -2
  406. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-pn.js +4 -4
  407. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-rw.js +6 -6
  408. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sc.js +4 -4
  409. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-se.js +143 -0
  410. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sh.js +4 -4
  411. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-si.js +143 -0
  412. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sl.js +2 -2
  413. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sx.js +4 -4
  414. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tk.js +4 -4
  415. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tv.js +4 -4
  416. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tz.js +6 -6
  417. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ug.js +6 -6
  418. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-us-posix.js +143 -0
  419. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-vu.js +2 -2
  420. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-xa.js +143 -0
  421. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-za.js +4 -4
  422. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-zw.js +4 -4
  423. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-419.js +19 -19
  424. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ar.js +19 -19
  425. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-bo.js +18 -18
  426. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-br.js +125 -0
  427. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-bz.js +125 -0
  428. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cl.js +19 -19
  429. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-co.js +17 -17
  430. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cr.js +18 -18
  431. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cu.js +19 -19
  432. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-do.js +14 -14
  433. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ea.js +12 -12
  434. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ec.js +17 -17
  435. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-es.js +12 -12
  436. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-gq.js +14 -14
  437. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-gt.js +17 -17
  438. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-hn.js +17 -17
  439. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ic.js +12 -12
  440. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-mx.js +18 -18
  441. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ni.js +17 -17
  442. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pa.js +13 -13
  443. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pe.js +4 -4
  444. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ph.js +16 -16
  445. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pr.js +13 -13
  446. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-py.js +19 -19
  447. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-sv.js +17 -17
  448. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-us.js +15 -15
  449. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-uy.js +4 -4
  450. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ve.js +12 -12
  451. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es.js +12 -12
  452. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_et-ee.js +8 -8
  453. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_et.js +8 -8
  454. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_eu-es.js +16 -16
  455. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_eu.js +16 -16
  456. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ewo-cm.js +2 -2
  457. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa-af.js +25 -25
  458. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa-ir.js +6 -6
  459. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa.js +4 -4
  460. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-cm.js +2 -2
  461. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-gn.js +2 -2
  462. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-mr.js +6 -6
  463. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-sn.js +2 -2
  464. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fi-fi.js +12 -12
  465. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fi.js +12 -12
  466. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo-dk.js +143 -0
  467. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo-fo.js +32 -32
  468. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo.js +32 -32
  469. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-be.js +13 -13
  470. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bf.js +14 -14
  471. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bi.js +14 -14
  472. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bj.js +14 -14
  473. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bl.js +12 -12
  474. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ca.js +5 -5
  475. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cd.js +12 -12
  476. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cf.js +14 -14
  477. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cg.js +14 -14
  478. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ch.js +17 -17
  479. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ci.js +14 -14
  480. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cm.js +16 -16
  481. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-dj.js +18 -18
  482. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-dz.js +16 -16
  483. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-fr.js +12 -12
  484. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ga.js +14 -14
  485. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gf.js +12 -12
  486. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gn.js +14 -14
  487. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gp.js +12 -12
  488. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gq.js +14 -14
  489. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ht.js +12 -12
  490. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-km.js +14 -14
  491. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-lu.js +12 -12
  492. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ma.js +19 -19
  493. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mc.js +12 -12
  494. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mf.js +12 -12
  495. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mg.js +14 -14
  496. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ml.js +14 -14
  497. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mq.js +12 -12
  498. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mr.js +18 -18
  499. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mu.js +14 -14
  500. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-nc.js +14 -14
  501. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ne.js +14 -14
  502. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-pf.js +14 -14
  503. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-pm.js +12 -12
  504. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-re.js +12 -12
  505. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-rw.js +14 -14
  506. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sc.js +12 -12
  507. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sn.js +14 -14
  508. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sy.js +18 -18
  509. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-td.js +18 -18
  510. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-tg.js +14 -14
  511. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-tn.js +18 -18
  512. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-vu.js +18 -18
  513. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-wf.js +14 -14
  514. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-yt.js +12 -12
  515. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr.js +12 -12
  516. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fy-nl.js +36 -36
  517. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fy.js +36 -36
  518. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gl-es.js +27 -27
  519. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gl.js +27 -27
  520. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-ch.js +2 -2
  521. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-fr.js +2 -2
  522. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-li.js +2 -2
  523. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw.js +2 -2
  524. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gu-in.js +3 -3
  525. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gu.js +3 -3
  526. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_guz-ke.js +7 -7
  527. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_guz.js +7 -7
  528. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gv-im.js +8 -8
  529. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gv.js +8 -8
  530. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-gh.js +143 -0
  531. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-ne.js +143 -0
  532. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-ng.js +143 -0
  533. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha.js +7 -7
  534. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_he-il.js +2 -2
  535. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_he.js +2 -2
  536. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr-ba.js +5 -5
  537. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr-hr.js +5 -5
  538. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr.js +5 -5
  539. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hy-am.js +22 -22
  540. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hy.js +20 -20
  541. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_id-id.js +3 -3
  542. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_id.js +1 -1
  543. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ig-ng.js +4 -4
  544. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ig.js +4 -4
  545. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ii-cn.js +17 -17
  546. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ii.js +17 -17
  547. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_in.js +1 -1
  548. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_is-is.js +2 -2
  549. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-ch.js +19 -19
  550. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-it.js +16 -16
  551. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-sm.js +16 -16
  552. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-va.js +143 -0
  553. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it.js +16 -16
  554. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_iw.js +2 -2
  555. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ja-jp.js +2 -2
  556. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jgo-cm.js +4 -4
  557. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jgo.js +2 -2
  558. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jmc-tz.js +6 -6
  559. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jmc.js +4 -4
  560. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ka-ge.js +2 -2
  561. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ka.js +2 -2
  562. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kab-dz.js +7 -7
  563. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kab.js +7 -7
  564. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kam-ke.js +5 -5
  565. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kam.js +5 -5
  566. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kde-tz.js +6 -6
  567. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kde.js +4 -4
  568. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_khq-ml.js +2 -2
  569. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ki-ke.js +5 -5
  570. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ki.js +5 -5
  571. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kk-kz.js +125 -0
  572. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kk.js +28 -28
  573. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kkj-cm.js +2 -2
  574. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kl-gl.js +14 -14
  575. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kl.js +14 -14
  576. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kln-ke.js +5 -5
  577. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kln.js +5 -5
  578. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_km-kh.js +8 -8
  579. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_km.js +8 -8
  580. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kn-in.js +2 -2
  581. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kn.js +2 -2
  582. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko-kp.js +4 -4
  583. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko-kr.js +4 -4
  584. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko.js +2 -2
  585. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kok-in.js +8 -8
  586. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kok.js +8 -8
  587. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ks-in.js +143 -0
  588. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksb-tz.js +6 -6
  589. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksb.js +4 -4
  590. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksf-cm.js +2 -2
  591. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksh-de.js +8 -8
  592. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksh.js +8 -8
  593. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kw-gb.js +6 -6
  594. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kw.js +6 -6
  595. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ky-kg.js +125 -0
  596. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ky.js +7 -7
  597. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lag-tz.js +6 -6
  598. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lag.js +4 -4
  599. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lg-ug.js +6 -6
  600. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lg.js +4 -4
  601. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lkt-us.js +9 -9
  602. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lkt.js +9 -9
  603. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ln-cf.js +2 -2
  604. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ln-cg.js +2 -2
  605. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lo-la.js +9 -9
  606. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lo.js +7 -7
  607. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc-iq.js +143 -0
  608. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc-ir.js +143 -0
  609. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc.js +143 -0
  610. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luo-ke.js +5 -5
  611. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luo.js +5 -5
  612. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luy-ke.js +5 -5
  613. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luy.js +5 -5
  614. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lv-lv.js +25 -25
  615. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lv.js +25 -25
  616. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas-ke.js +5 -5
  617. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas-tz.js +6 -6
  618. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas.js +5 -5
  619. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mer-ke.js +5 -5
  620. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mer.js +5 -5
  621. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mfe-mu.js +2 -2
  622. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mg-mg.js +8 -8
  623. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mg.js +6 -6
  624. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgh-mz.js +5 -5
  625. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgh.js +5 -5
  626. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgo-cm.js +2 -2
  627. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mk-mk.js +4 -4
  628. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mk.js +4 -4
  629. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ml-in.js +4 -4
  630. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ml.js +4 -4
  631. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mn-mn.js +125 -0
  632. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mn.js +6 -6
  633. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mo.js +143 -0
  634. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-bn.js +39 -13
  635. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-my.js +35 -9
  636. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-sg.js +125 -0
  637. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mua-cm.js +2 -2
  638. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_my-mm.js +10 -10
  639. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_my.js +8 -8
  640. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mzn-ir.js +143 -0
  641. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mzn.js +143 -0
  642. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb-no.js +6 -6
  643. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb-sj.js +6 -6
  644. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb.js +6 -6
  645. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nd-zw.js +4 -4
  646. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nd.js +4 -4
  647. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds-de.js +143 -0
  648. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds-nl.js +143 -0
  649. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds.js +143 -0
  650. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne-in.js +5 -5
  651. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne-np.js +1 -1
  652. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne.js +1 -1
  653. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-aw.js +12 -12
  654. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-be.js +12 -12
  655. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-bq.js +12 -12
  656. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-cw.js +12 -12
  657. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-nl.js +12 -12
  658. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-sr.js +12 -12
  659. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-sx.js +12 -12
  660. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl.js +12 -12
  661. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nmg-cm.js +2 -2
  662. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nnh-cm.js +5 -5
  663. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nnh.js +3 -3
  664. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_no-no.js +6 -6
  665. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_no.js +6 -6
  666. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nus-ss.js +143 -0
  667. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nus.js +1 -1
  668. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nyn-ug.js +6 -6
  669. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nyn.js +4 -4
  670. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om-et.js +5 -5
  671. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om-ke.js +8 -8
  672. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om.js +5 -5
  673. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os-ge.js +1 -1
  674. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os-ru.js +2 -2
  675. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os.js +1 -1
  676. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-arab-pk.js +5 -5
  677. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-arab.js +3 -3
  678. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-guru-in.js +2 -2
  679. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-guru.js +2 -2
  680. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa.js +2 -2
  681. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pl-pl.js +4 -4
  682. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pl.js +4 -4
  683. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_prg-001.js +143 -0
  684. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_prg.js +143 -0
  685. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ps-af.js +10 -10
  686. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ps.js +8 -8
  687. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-ao.js +8 -8
  688. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-br.js +5 -5
  689. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-ch.js +125 -0
  690. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-cv.js +8 -8
  691. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-gq.js +125 -0
  692. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-gw.js +10 -10
  693. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-lu.js +125 -0
  694. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-mo.js +12 -12
  695. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-mz.js +8 -8
  696. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-pt.js +8 -8
  697. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-st.js +10 -10
  698. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-tl.js +8 -8
  699. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt.js +5 -5
  700. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-bo.js +7 -7
  701. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-ec.js +7 -7
  702. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-pe.js +6 -6
  703. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu.js +6 -6
  704. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rm-ch.js +2 -2
  705. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rm.js +2 -2
  706. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rn-bi.js +2 -2
  707. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro-md.js +12 -12
  708. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro-ro.js +19 -19
  709. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro.js +19 -19
  710. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rof-tz.js +6 -6
  711. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rof.js +4 -4
  712. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-by.js +10 -10
  713. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-kg.js +9 -9
  714. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-kz.js +9 -9
  715. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-md.js +9 -9
  716. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-ru.js +10 -10
  717. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-ua.js +8 -8
  718. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru.js +10 -10
  719. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rw-rw.js +5 -5
  720. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rw.js +3 -3
  721. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rwk-tz.js +6 -6
  722. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rwk.js +4 -4
  723. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sah-ru.js +40 -40
  724. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sah.js +40 -40
  725. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_saq-ke.js +5 -5
  726. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_saq.js +5 -5
  727. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sbp-tz.js +6 -6
  728. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sbp.js +4 -4
  729. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_se-fi.js +19 -19
  730. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_seh-mz.js +1 -1
  731. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_seh.js +1 -1
  732. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ses-ml.js +2 -2
  733. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sg-cf.js +2 -2
  734. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sh.js +143 -0
  735. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-latn-ma.js +3 -3
  736. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-latn.js +3 -3
  737. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-tfng-ma.js +3 -3
  738. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-tfng.js +3 -3
  739. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi.js +3 -3
  740. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_si-lk.js +6 -6
  741. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_si.js +6 -6
  742. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sk-sk.js +4 -4
  743. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sk.js +4 -4
  744. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sl-si.js +3 -3
  745. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sl.js +3 -3
  746. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_smn-fi.js +51 -51
  747. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_smn.js +51 -51
  748. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sn-zw.js +14 -14
  749. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sn.js +14 -14
  750. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-dj.js +5 -5
  751. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-et.js +3 -3
  752. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-ke.js +7 -7
  753. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-so.js +4 -4
  754. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so.js +2 -2
  755. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-al.js +24 -24
  756. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-mk.js +18 -18
  757. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-xk.js +18 -18
  758. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq.js +22 -22
  759. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-ba.js +21 -21
  760. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-me.js +25 -25
  761. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-rs.js +8 -8
  762. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-xk.js +22 -22
  763. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl.js +6 -6
  764. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-ba.js +21 -21
  765. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-me.js +25 -25
  766. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-rs.js +8 -8
  767. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-xk.js +22 -22
  768. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn.js +6 -6
  769. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr.js +6 -6
  770. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-ax.js +12 -12
  771. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-fi.js +12 -12
  772. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-se.js +12 -12
  773. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv.js +12 -12
  774. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-cd.js +45 -45
  775. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-ke.js +6 -6
  776. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-tz.js +10 -10
  777. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-ug.js +10 -10
  778. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw.js +8 -8
  779. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-in.js +14 -14
  780. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-lk.js +14 -14
  781. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-my.js +14 -14
  782. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-sg.js +14 -14
  783. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta.js +14 -14
  784. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_te-in.js +2 -2
  785. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_te.js +2 -2
  786. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo-ke.js +5 -5
  787. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo-ug.js +6 -6
  788. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo.js +4 -4
  789. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti-er.js +22 -22
  790. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti-et.js +45 -45
  791. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti.js +45 -45
  792. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tk-tm.js +143 -0
  793. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tk.js +143 -0
  794. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_to-to.js +2 -2
  795. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_to.js +2 -2
  796. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr-cy.js +9 -9
  797. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr-tr.js +6 -6
  798. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr.js +6 -6
  799. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_twq-ne.js +2 -2
  800. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tzm-ma.js +143 -0
  801. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tzm.js +4 -4
  802. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ug-cn.js +143 -0
  803. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ug.js +10 -10
  804. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uk-ua.js +22 -22
  805. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uk.js +22 -22
  806. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur-in.js +6 -6
  807. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur-pk.js +9 -9
  808. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur.js +7 -7
  809. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-arab-af.js +19 -19
  810. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-arab.js +17 -17
  811. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-cyrl-uz.js +49 -49
  812. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-cyrl.js +47 -47
  813. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-latn-uz.js +41 -41
  814. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-latn.js +39 -39
  815. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz.js +39 -39
  816. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vi-vn.js +12 -12
  817. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vi.js +10 -10
  818. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vo-001.js +22 -7
  819. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vo.js +22 -7
  820. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vun-tz.js +6 -6
  821. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vun.js +4 -4
  822. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_xog-ug.js +6 -6
  823. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_xog.js +4 -4
  824. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yav-cm.js +2 -2
  825. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yi-001.js +3 -3
  826. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yi.js +3 -3
  827. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo-bj.js +7 -7
  828. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo-ng.js +5 -5
  829. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo.js +5 -5
  830. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yue-hk.js +143 -0
  831. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yue.js +143 -0
  832. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zgh-ma.js +3 -3
  833. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zgh.js +3 -3
  834. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-cn.js +4 -4
  835. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hans-cn.js +4 -4
  836. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hans.js +4 -4
  837. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hant-hk.js +4 -4
  838. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hant-mo.js +4 -4
  839. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hk.js +4 -4
  840. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh.js +4 -4
  841. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zu-za.js +17 -17
  842. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zu.js +17 -17
  843. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ar-xb.js +2 -0
  844. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ce-ru.js +2 -0
  845. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ce.js +2 -0
  846. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/cu-ru.js +2 -0
  847. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/cu.js +2 -0
  848. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/de-it.js +2 -0
  849. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-at.js +2 -0
  850. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-bi.js +2 -0
  851. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-ch.js +2 -0
  852. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-cy.js +2 -0
  853. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-de.js +2 -0
  854. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-dk.js +2 -0
  855. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-fi.js +2 -0
  856. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-il.js +2 -0
  857. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-nl.js +2 -0
  858. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-se.js +2 -0
  859. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-si.js +2 -0
  860. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-us-posix.js +2 -0
  861. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-xa.js +2 -0
  862. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/es-br.js +2 -0
  863. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/es-bz.js +2 -0
  864. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/fo-dk.js +2 -0
  865. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-gh.js +2 -0
  866. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-ne.js +2 -0
  867. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-ng.js +2 -0
  868. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/it-va.js +2 -0
  869. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/kk-kz.js +2 -0
  870. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ks-in.js +2 -0
  871. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ky-kg.js +2 -0
  872. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc-iq.js +2 -0
  873. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc-ir.js +2 -0
  874. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc.js +2 -0
  875. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mn-mn.js +2 -0
  876. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mo.js +2 -0
  877. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ms-sg.js +2 -0
  878. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mzn-ir.js +2 -0
  879. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mzn.js +2 -0
  880. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds-de.js +2 -0
  881. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds-nl.js +2 -0
  882. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds.js +2 -0
  883. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nus-ss.js +2 -0
  884. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/prg-001.js +2 -0
  885. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/prg.js +2 -0
  886. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-ch.js +2 -0
  887. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-gq.js +2 -0
  888. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-lu.js +2 -0
  889. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/sh.js +2 -0
  890. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tk-tm.js +2 -0
  891. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tk.js +2 -0
  892. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tzm-ma.js +2 -0
  893. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ug-cn.js +2 -0
  894. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/yue-hk.js +2 -0
  895. data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/yue.js +2 -0
  896. data/engines/bastion/vendor/assets/javascripts/bastion/angular-resource/angular-resource.js +407 -264
  897. data/engines/bastion/vendor/assets/javascripts/bastion/angular-route/angular-route.js +397 -156
  898. data/engines/bastion/vendor/assets/javascripts/bastion/angular-sanitize/angular-sanitize.js +516 -320
  899. data/engines/bastion/vendor/assets/javascripts/bastion/angular-ui-router/angular-ui-router.js +10551 -4465
  900. data/engines/bastion/vendor/assets/javascripts/bastion/angular/angular.js +10455 -4892
  901. data/engines/bastion/vendor/assets/javascripts/bastion/ngUpload/ng-upload.js +2 -2
  902. data/engines/bastion_katello/README.md +1 -0
  903. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-key.factory.js +2 -2
  904. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +0 -1
  905. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ansible-collections/ansible-collections.factory.js +3 -3
  906. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/api-error-handler.service.js +2 -0
  907. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js +0 -1
  908. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html +3 -3
  909. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html +3 -3
  910. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-traces-modal.controller.js +65 -0
  911. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-traces-modal.html +79 -0
  912. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +11 -0
  913. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +6 -0
  914. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +5 -0
  915. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-actions.controller.js +8 -1
  916. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +10 -9
  917. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -0
  918. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-traces.html +14 -1
  919. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +23 -10
  920. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +20 -0
  921. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +4 -0
  922. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-client.html +1 -1
  923. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +1 -1
  924. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/deb.factory.js +3 -3
  925. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifest-lists/docker-manifest-list.factory.js +3 -3
  926. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifests/docker-manifest.factory.js +3 -3
  927. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.factory.js +2 -2
  928. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.routes.js +0 -1
  929. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +0 -1
  930. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +1 -0
  931. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.controller.js +15 -6
  932. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +3 -0
  933. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/erratum.factory.js +2 -2
  934. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/file.factory.js +3 -3
  935. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collection.factory.js +2 -2
  936. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.routes.js +0 -1
  937. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +2 -1
  938. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-traces-resolve.factory.js +18 -0
  939. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/module-stream.factory.js +3 -3
  940. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/package-groups/package-group.factory.js +3 -3
  941. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/package.factory.js +2 -2
  942. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +1 -1
  943. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync-options.html +5 -5
  944. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
  945. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +1 -3
  946. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/product.factory.js +2 -2
  947. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +0 -1
  948. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.routes.js +0 -1
  949. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task-details.controller.js +3 -2
  950. data/lib/katello.rb +4 -1
  951. data/lib/katello/engine.rb +25 -3
  952. data/lib/katello/permissions/host_permissions.rb +3 -0
  953. data/lib/katello/permissions/organization_permissions.rb +1 -2
  954. data/lib/katello/plugin.rb +12 -3
  955. data/lib/katello/prevent_json_parsing.rb +1 -1
  956. data/lib/katello/scheduled_jobs.rb +1 -1
  957. data/lib/katello/tasks/clean_backend_objects.rake +1 -1
  958. data/lib/katello/tasks/import_applicability.rake +4 -6
  959. data/lib/katello/tasks/jenkins.rake +1 -1
  960. data/lib/katello/tasks/pulp3_content_switchover.rake +6 -8
  961. data/lib/katello/tasks/pulp3_post_migration_check.rake +4 -0
  962. data/lib/katello/tasks/receptor/extract_orgs.rake +27 -0
  963. data/lib/katello/tasks/reimport.rake +15 -19
  964. data/lib/katello/tasks/repository.rake +5 -7
  965. data/lib/katello/tasks/reset.rake +12 -13
  966. data/lib/katello/tasks/update_content_default_http_proxy.rake +1 -1
  967. data/lib/katello/tasks/update_subscription_facet_backend_data.rake +14 -16
  968. data/lib/katello/tasks/upgrades/3.10/clear_invalid_repo_credentials.rake +1 -1
  969. data/lib/katello/tasks/upgrades/3.10/update_gpg_key_urls.rake +1 -1
  970. data/lib/katello/tasks/upgrades/3.11/update_puppet_repos.rake +9 -11
  971. data/lib/katello/tasks/upgrades/3.15/set_sub_facet_dmi_uuid.rake +1 -1
  972. data/lib/katello/tasks/upgrades/3.8/clear_checksum_type.rake +18 -22
  973. data/lib/katello/version.rb +1 -1
  974. data/lib/monkeys/ar_postgres_evr_t.rb +24 -0
  975. data/lib/monkeys/fx_sqlite_skip.rb +13 -0
  976. data/package.json +13 -39
  977. data/webpack/__mocks__/foremanReact/components/{BreadcrumbBar.js → BreadcrumbBar/index.js} +0 -1
  978. data/webpack/__mocks__/react-intl/index.js +3 -0
  979. data/webpack/__mocks__/react-intl/locale-data/en.js +1 -0
  980. data/webpack/components/Content/ContentTable.js +0 -2
  981. data/webpack/components/Content/Details/ContentDetails.js +0 -3
  982. data/webpack/containers/Application/config.js +5 -0
  983. data/webpack/containers/Application/overrides.scss +8 -0
  984. data/webpack/mockRequest.js +1 -0
  985. data/webpack/move_to_foreman/common/helpers.js +2 -1
  986. data/webpack/move_to_foreman/components/common/table/components/__snapshots__/Table.test.js.snap +1 -0
  987. data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetails.js +0 -3
  988. data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetailsActions.js +2 -2
  989. data/webpack/scenes/AnsibleCollections/Details/__tests__/__snapshots__/AnsibleCollectionDetailsActions.test.js.snap +4 -0
  990. data/webpack/scenes/ContentViews/ContentViewSelectors.js +13 -0
  991. data/webpack/scenes/ContentViews/ContentViewsActions.js +18 -0
  992. data/webpack/scenes/ContentViews/ContentViewsConstants.js +3 -0
  993. data/webpack/scenes/ContentViews/ContentViewsPage.js +30 -0
  994. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +104 -0
  995. data/webpack/scenes/ContentViews/Table/TableWrapper.js +55 -0
  996. data/webpack/scenes/ContentViews/Table/actionResolver.js +28 -0
  997. data/webpack/scenes/ContentViews/Table/index.js +3 -0
  998. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +133 -0
  999. data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +228 -0
  1000. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +99 -0
  1001. data/webpack/scenes/ContentViews/components/ContentViewName.js +33 -0
  1002. data/webpack/scenes/ContentViews/components/EmptyStateMessage.js +43 -0
  1003. data/webpack/scenes/ContentViews/components/IconWithCount.js +18 -0
  1004. data/webpack/scenes/ContentViews/components/IconWithCount.scss +3 -0
  1005. data/webpack/scenes/ContentViews/components/Loading.js +31 -0
  1006. data/webpack/scenes/ContentViews/components/contentViewName.scss +9 -0
  1007. data/webpack/scenes/ContentViews/details/ContentViewDetailActions.js +12 -0
  1008. data/webpack/scenes/ContentViews/details/ContentViewDetailSelectors.js +15 -0
  1009. data/webpack/scenes/ContentViews/details/DetailsContainer.js +35 -0
  1010. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +11 -0
  1011. data/webpack/scenes/ContentViews/expansions/EnvironmentsExpansion.js +19 -0
  1012. data/webpack/scenes/ContentViews/expansions/RepositoriesExpansion.js +12 -0
  1013. data/webpack/scenes/ContentViews/expansions/VersionsExpansion.js +11 -0
  1014. data/webpack/scenes/ContentViews/index.js +4 -0
  1015. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetails.js +0 -3
  1016. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsActions.js +2 -2
  1017. data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailsActions.test.js.snap +4 -0
  1018. data/webpack/scenes/RedHatRepositories/RedHatRepositoriesPage.js +0 -2
  1019. data/webpack/scenes/RedHatRepositories/__tests__/__snapshots__/RedHatRepositoriesPage.test.js.snap +8 -0
  1020. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +0 -2
  1021. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/RepositorySetRepository.js +0 -2
  1022. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailAssociations.js +0 -2
  1023. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProductContent.js +0 -2
  1024. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProducts.js +0 -2
  1025. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +0 -2
  1026. data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +3 -2
  1027. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +0 -3
  1028. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +0 -2
  1029. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +1 -1
  1030. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +19 -13
  1031. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +8 -0
  1032. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTable.js +0 -2
  1033. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +0 -1
  1034. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/UpdateDialog.js +1 -1
  1035. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/index.js +4 -4
  1036. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Table.js +0 -2
  1037. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +10 -0
  1038. data/webpack/scenes/Tasks/__tests__/__snapshots__/TaskActions.test.js.snap +12 -8
  1039. data/webpack/test-utils/nockWrapper.js +17 -0
  1040. data/webpack/test-utils/react-testing-lib-wrapper.js +42 -0
  1041. data/webpack/test_setup.js +10 -0
  1042. metadata +246 -67
  1043. data/app/lib/actions/candlepin/owner/auto_attach.rb +0 -15
  1044. data/app/lib/actions/katello/organization/auto_attach_subscriptions.rb +0 -16
  1045. data/app/services/katello/candlepin_listening_service.rb +0 -94
  1046. data/config/initializers/multipart_json_fix.rb +0 -15
  1047. data/config/initializers/runcible.rb +0 -5
  1048. data/lib/katello/tasks/upgrades/3.16/update_applicable_el8_hosts.rake +0 -29
  1049. data/lib/monkeys/json_munging_patch.rb +0 -25
  1050. data/lib/monkeys/multi_json_empty_fix.rb +0 -14
  1051. data/webpack/__mocks__/foremanReact/common/I18n.js +0 -5
  1052. data/webpack/__mocks__/foremanReact/common/helpers.js +0 -21
  1053. data/webpack/__mocks__/foremanReact/common/keyCodes.js +0 -8
  1054. data/webpack/__mocks__/foremanReact/components/PermissionDenied/index.js +0 -2
  1055. data/webpack/__mocks__/foremanReact/components/common/ModalProgressBar.js +0 -8
  1056. data/webpack/__mocks__/foremanReact/components/common/table.js +0 -6
  1057. data/webpack/__mocks__/foremanReact/redux/API.js +0 -6
  1058. data/webpack/__mocks__/foremanReact/redux/middlewares/IntervalMiddleware/IntervalSelectors.js +0 -6
  1059. data/webpack/__mocks__/foremanReact/redux/middlewares/IntervalMiddleware/index.js +0 -11
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_it-va');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_kk-kz');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_ks-in');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_ky-kg');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_lrc-iq');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_lrc-ir');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_lrc');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_mn-mn');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_mo');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_ms-sg');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_mzn-ir');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_mzn');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_nds-de');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_nds-nl');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_nds');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_nus-ss');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_prg-001');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_prg');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_pt-ch');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_pt-gq');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_pt-lu');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_sh');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_tk-tm');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_tk');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_tzm-ma');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_ug-cn');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_yue-hk');
2
+ module.exports = 'ngLocale';
@@ -0,0 +1,2 @@
1
+ require('./angular-locale_yue');
2
+ module.exports = 'ngLocale';
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license AngularJS v1.5.5
3
- * (c) 2010-2016 Google, Inc. http://angularjs.org
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';
@@ -53,15 +53,24 @@ function shallowClearAndCopy(src, dst) {
53
53
  * @name ngResource
54
54
  * @description
55
55
  *
56
- * # ngResource
57
- *
58
56
  * The `ngResource` module provides interaction support with RESTful services
59
57
  * via the $resource service.
60
58
  *
59
+ * See {@link ngResource.$resourceProvider} and {@link ngResource.$resource} for usage.
60
+ */
61
+
62
+ /**
63
+ * @ngdoc provider
64
+ * @name $resourceProvider
61
65
  *
62
- * <div doc-module-components="ngResource"></div>
66
+ * @description
67
+ *
68
+ * Use `$resourceProvider` to change the default behavior of the {@link ngResource.$resource}
69
+ * service.
70
+ *
71
+ * ## Dependencies
72
+ * Requires the {@link ngResource } module to be installed.
63
73
  *
64
- * See {@link ngResource.$resource `$resource`} for usage.
65
74
  */
66
75
 
67
76
  /**
@@ -105,27 +114,36 @@ function shallowClearAndCopy(src, dst) {
105
114
  * can escape it with `/\.`.
106
115
  *
107
116
  * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in
108
- * `actions` methods. If a parameter value is a function, it will be executed every time
109
- * when a param value needs to be obtained for a request (unless the param was overridden).
117
+ * `actions` methods. If a parameter value is a function, it will be called every time
118
+ * a param value needs to be obtained for a request (unless the param was overridden). The
119
+ * function will be passed the current data value as an argument.
110
120
  *
111
121
  * Each key value in the parameter object is first bound to url template if present and then any
112
122
  * excess keys are appended to the url search query after the `?`.
113
123
  *
114
- * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in
124
+ * Given a template `/path/:verb` and parameter `{verb: 'greet', salutation: 'Hello'}` results in
115
125
  * URL `/path/greet?salutation=Hello`.
116
126
  *
117
- * If the parameter value is prefixed with `@` then the value for that parameter will be extracted
118
- * from the corresponding property on the `data` object (provided when calling an action method).
127
+ * If the parameter value is prefixed with `@`, then the value for that parameter will be
128
+ * extracted from the corresponding property on the `data` object (provided when calling actions
129
+ * with a request body).
119
130
  * For example, if the `defaultParam` object is `{someParam: '@someProp'}` then the value of
120
131
  * `someParam` will be `data.someProp`.
132
+ * Note that the parameter will be ignored, when calling a "GET" action method (i.e. an action
133
+ * method that does not accept a request body).
121
134
  *
122
- * @param {Object.<Object>=} actions Hash with declaration of custom actions that should extend
123
- * the default set of resource actions. The declaration should be created in the format of {@link
124
- * ng.$http#usage $http.config}:
135
+ * @param {Object.<Object>=} actions Hash with declaration of custom actions that will be available
136
+ * in addition to the default set of resource actions (see below). If a custom action has the same
137
+ * key as a default action (e.g. `save`), then the default action will be *overwritten*, and not
138
+ * extended.
125
139
  *
126
- * {action1: {method:?, params:?, isArray:?, headers:?, ...},
127
- * action2: {method:?, params:?, isArray:?, headers:?, ...},
128
- * ...}
140
+ * The declaration should be created in the format of {@link ng.$http#usage $http.config}:
141
+ *
142
+ * {
143
+ * action1: {method:?, params:?, isArray:?, headers:?, ...},
144
+ * action2: {method:?, params:?, isArray:?, headers:?, ...},
145
+ * ...
146
+ * }
129
147
  *
130
148
  * Where:
131
149
  *
@@ -134,48 +152,61 @@ function shallowClearAndCopy(src, dst) {
134
152
  * - **`method`** – {string} – Case insensitive HTTP method (e.g. `GET`, `POST`, `PUT`,
135
153
  * `DELETE`, `JSONP`, etc).
136
154
  * - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of
137
- * the parameter value is a function, it will be executed every time when a param value needs to
138
- * be obtained for a request (unless the param was overridden).
139
- * - **`url`** {string} action specific `url` override. The url templating is supported just
155
+ * the parameter value is a function, it will be called every time when a param value needs to
156
+ * be obtained for a request (unless the param was overridden). The function will be passed the
157
+ * current data value as an argument.
158
+ * - **`url`** – {string} – Action specific `url` override. The url templating is supported just
140
159
  * like for the resource-level urls.
141
160
  * - **`isArray`** – {boolean=} – If true then the returned object for this action is an array,
142
161
  * see `returns` section.
143
162
  * - **`transformRequest`** –
144
163
  * `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` –
145
- * transform function or an array of such functions. The transform function takes the http
164
+ * Transform function or an array of such functions. The transform function takes the http
146
165
  * request body and headers and returns its transformed (typically serialized) version.
147
166
  * By default, transformRequest will contain one function that checks if the request data is
148
- * an object and serializes to using `angular.toJson`. To prevent this behavior, set
167
+ * an object and serializes it using `angular.toJson`. To prevent this behavior, set
149
168
  * `transformRequest` to an empty array: `transformRequest: []`
150
169
  * - **`transformResponse`** –
151
- * `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` –
152
- * transform function or an array of such functions. The transform function takes the http
153
- * response body and headers and returns its transformed (typically deserialized) version.
170
+ * `{function(data, headersGetter, status)|Array.<function(data, headersGetter, status)>}` –
171
+ * Transform function or an array of such functions. The transform function takes the HTTP
172
+ * response body, headers and status and returns its transformed (typically deserialized)
173
+ * version.
154
174
  * By default, transformResponse will contain one function that checks if the response looks
155
175
  * like a JSON string and deserializes it using `angular.fromJson`. To prevent this behavior,
156
176
  * set `transformResponse` to an empty array: `transformResponse: []`
157
- * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the
158
- * GET request, otherwise if a cache instance built with
159
- * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for
160
- * caching.
161
- * - **`timeout`** – `{number}` – timeout in milliseconds.<br />
177
+ * - **`cache`** – `{boolean|Cache}` – A boolean value or object created with
178
+ * {@link ng.$cacheFactory `$cacheFactory`} to enable or disable caching of the HTTP response.
179
+ * See {@link $http#caching $http Caching} for more information.
180
+ * - **`timeout`** – `{number}` – Timeout in milliseconds.<br />
162
181
  * **Note:** In contrast to {@link ng.$http#usage $http.config}, {@link ng.$q promises} are
163
- * **not** supported in $resource, because the same value would be used for multiple requests.
182
+ * **not** supported in `$resource`, because the same value would be used for multiple requests.
164
183
  * If you are looking for a way to cancel requests, you should use the `cancellable` option.
165
- * - **`cancellable`** – `{boolean}` – if set to true, the request made by a "non-instance" call
166
- * will be cancelled (if not already completed) by calling `$cancelRequest()` on the call's
167
- * return value. Calling `$cancelRequest()` for a non-cancellable or an already
168
- * completed/cancelled request will have no effect.<br />
169
- * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the
184
+ * - **`cancellable`** – `{boolean}` – If true, the request made by a "non-instance" call will be
185
+ * cancelled (if not already completed) by calling `$cancelRequest()` on the call's return
186
+ * value. Calling `$cancelRequest()` for a non-cancellable or an already completed/cancelled
187
+ * request will have no effect.
188
+ * - **`withCredentials`** `{boolean}` Whether to set the `withCredentials` flag on the
170
189
  * XHR object. See
171
- * [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5)
190
+ * [XMLHttpRequest.withCredentials](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials)
172
191
  * for more information.
173
- * - **`responseType`** - `{string}` - see
174
- * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType).
175
- * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods -
176
- * `response` and `responseError`. Both `response` and `responseError` interceptors get called
177
- * with `http response` object. See {@link ng.$http $http interceptors}.
178
- *
192
+ * - **`responseType`** `{string}` See
193
+ * [XMLHttpRequest.responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType).
194
+ * - **`interceptor`** `{Object=}` The interceptor object has four optional methods -
195
+ * `request`, `requestError`, `response`, and `responseError`. See
196
+ * {@link ng.$http#interceptors $http interceptors} for details. Note that
197
+ * `request`/`requestError` interceptors are applied before calling `$http`, thus before any
198
+ * global `$http` interceptors. Also, rejecting or throwing an error inside the `request`
199
+ * interceptor will result in calling the `responseError` interceptor.
200
+ * The resource instance or collection is available on the `resource` property of the
201
+ * `http response` object passed to `response`/`responseError` interceptors.
202
+ * Keep in mind that the associated promise will be resolved with the value returned by the
203
+ * response interceptors. Make sure you return an appropriate value and not the `response`
204
+ * object passed as input. For reference, the default `response` interceptor (which gets applied
205
+ * if you don't specify a custom one) returns `response.resource`.<br />
206
+ * See {@link ngResource.$resource#using-interceptors below} for an example of using
207
+ * interceptors in `$resource`.
208
+ * - **`hasBody`** – `{boolean}` – If true, then the request will have a body.
209
+ * If not specified, then only POST, PUT and PATCH requests will have a body. *
179
210
  * @param {Object} options Hash with custom settings that should extend the
180
211
  * default `$resourceProvider` behavior. The supported options are:
181
212
  *
@@ -188,27 +219,29 @@ function shallowClearAndCopy(src, dst) {
188
219
  * @returns {Object} A resource "class" object with methods for the default set of resource actions
189
220
  * optionally extended with custom `actions`. The default set contains these actions:
190
221
  * ```js
191
- * { 'get': {method:'GET'},
192
- * 'save': {method:'POST'},
193
- * 'query': {method:'GET', isArray:true},
194
- * 'remove': {method:'DELETE'},
195
- * 'delete': {method:'DELETE'} };
222
+ * {
223
+ * 'get': {method: 'GET'},
224
+ * 'save': {method: 'POST'},
225
+ * 'query': {method: 'GET', isArray: true},
226
+ * 'remove': {method: 'DELETE'},
227
+ * 'delete': {method: 'DELETE'}
228
+ * }
196
229
  * ```
197
230
  *
198
- * Calling these methods invoke an {@link ng.$http} with the specified http method,
199
- * destination and parameters. When the data is returned from the server then the object is an
200
- * instance of the resource class. The actions `save`, `remove` and `delete` are available on it
201
- * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create,
202
- * read, update, delete) on server-side data like this:
231
+ * Calling these methods invoke {@link ng.$http} with the specified http method, destination and
232
+ * parameters. When the data is returned from the server then the object is an instance of the
233
+ * resource class. The actions `save`, `remove` and `delete` are available on it as methods with
234
+ * the `$` prefix. This allows you to easily perform CRUD operations (create, read, update,
235
+ * delete) on server-side data like this:
203
236
  * ```js
204
- * var User = $resource('/user/:userId', {userId:'@id'});
205
- * var user = User.get({userId:123}, function() {
237
+ * var User = $resource('/user/:userId', {userId: '@id'});
238
+ * User.get({userId: 123}).$promise.then(function(user) {
206
239
  * user.abc = true;
207
240
  * user.$save();
208
241
  * });
209
242
  * ```
210
243
  *
211
- * It is important to realize that invoking a $resource object method immediately returns an
244
+ * It is important to realize that invoking a `$resource` object method immediately returns an
212
245
  * empty reference (object or array depending on `isArray`). Once the data is returned from the
213
246
  * server the existing reference is populated with the actual data. This is a useful trick since
214
247
  * usually the resource is assigned to a model which is then rendered by the view. Having an empty
@@ -219,171 +252,192 @@ function shallowClearAndCopy(src, dst) {
219
252
  * The action methods on the class object or instance object can be invoked with the following
220
253
  * parameters:
221
254
  *
222
- * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])`
223
- * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])`
224
- * - non-GET instance actions: `instance.$action([parameters], [success], [error])`
255
+ * - "class" actions without a body: `Resource.action([parameters], [success], [error])`
256
+ * - "class" actions with a body: `Resource.action([parameters], postData, [success], [error])`
257
+ * - instance actions: `instance.$action([parameters], [success], [error])`
258
+ *
225
259
  *
260
+ * When calling instance methods, the instance itself is used as the request body (if the action
261
+ * should have a body). By default, only actions using `POST`, `PUT` or `PATCH` have request
262
+ * bodies, but you can use the `hasBody` configuration option to specify whether an action
263
+ * should have a body or not (regardless of its HTTP method).
226
264
  *
227
- * Success callback is called with (value, responseHeaders) arguments, where the value is
228
- * the populated resource instance or collection object. The error callback is called
229
- * with (httpResponse) argument.
230
265
  *
231
- * Class actions return empty instance (with additional properties below).
232
- * Instance actions return promise of the action.
266
+ * Success callback is called with (value (Object|Array), responseHeaders (Function),
267
+ * status (number), statusText (string)) arguments, where `value` is the populated resource
268
+ * instance or collection object. The error callback is called with (httpResponse) argument.
269
+ *
270
+ * Class actions return an empty instance (with the additional properties listed below).
271
+ * Instance actions return a promise for the operation.
233
272
  *
234
273
  * The Resource instances and collections have these additional properties:
235
274
  *
236
- * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this
275
+ * - `$promise`: The {@link ng.$q promise} of the original server interaction that created this
237
276
  * instance or collection.
238
277
  *
239
278
  * On success, the promise is resolved with the same resource instance or collection object,
240
- * updated with data from server. This makes it easy to use in
241
- * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view
279
+ * updated with data from server. This makes it easy to use in the
280
+ * {@link ngRoute.$routeProvider `resolve` section of `$routeProvider.when()`} to defer view
242
281
  * rendering until the resource(s) are loaded.
243
282
  *
244
- * On failure, the promise is rejected with the {@link ng.$http http response} object, without
245
- * the `resource` property.
283
+ * On failure, the promise is rejected with the {@link ng.$http http response} object.
246
284
  *
247
285
  * If an interceptor object was provided, the promise will instead be resolved with the value
248
- * returned by the interceptor.
286
+ * returned by the response interceptor (on success) or responceError interceptor (on failure).
249
287
  *
250
288
  * - `$resolved`: `true` after first server interaction is completed (either with success or
251
289
  * rejection), `false` before that. Knowing if the Resource has been resolved is useful in
252
- * data-binding.
290
+ * data-binding. If there is a response/responseError interceptor and it returns a promise,
291
+ * `$resolved` will wait for that too.
253
292
  *
254
293
  * The Resource instances and collections have these additional methods:
255
294
  *
256
295
  * - `$cancelRequest`: If there is a cancellable, pending request related to the instance or
257
296
  * collection, calling this method will abort the request.
258
297
  *
298
+ * The Resource instances have these additional methods:
299
+ *
300
+ * - `toJSON`: It returns a simple object without any of the extra properties added as part of
301
+ * the Resource API. This object can be serialized through {@link angular.toJson} safely
302
+ * without attaching AngularJS-specific fields. Notice that `JSON.stringify` (and
303
+ * `angular.toJson`) automatically use this method when serializing a Resource instance
304
+ * (see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON%28%29_behavior)).
305
+ *
259
306
  * @example
260
307
  *
261
- * # Credit card resource
308
+ * ### Basic usage
262
309
  *
263
- * ```js
264
- // Define CreditCard class
265
- var CreditCard = $resource('/user/:userId/card/:cardId',
266
- {userId:123, cardId:'@id'}, {
267
- charge: {method:'POST', params:{charge:true}}
268
- });
310
+ ```js
311
+ // Define a CreditCard class
312
+ var CreditCard = $resource('/users/:userId/cards/:cardId',
313
+ {userId: 123, cardId: '@id'}, {
314
+ charge: {method: 'POST', params: {charge: true}}
315
+ });
269
316
 
270
317
  // We can retrieve a collection from the server
271
- var cards = CreditCard.query(function() {
272
- // GET: /user/123/card
273
- // server returns: [ {id:456, number:'1234', name:'Smith'} ];
318
+ var cards = CreditCard.query();
319
+ // GET: /users/123/cards
320
+ // server returns: [{id: 456, number: '1234', name: 'Smith'}]
274
321
 
322
+ // Wait for the request to complete
323
+ cards.$promise.then(function() {
275
324
  var card = cards[0];
276
- // each item is an instance of CreditCard
325
+
326
+ // Each item is an instance of CreditCard
277
327
  expect(card instanceof CreditCard).toEqual(true);
278
- card.name = "J. Smith";
279
- // non GET methods are mapped onto the instances
328
+
329
+ // Non-GET methods are mapped onto the instances
330
+ card.name = 'J. Smith';
280
331
  card.$save();
281
- // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'}
282
- // server returns: {id:456, number:'1234', name: 'J. Smith'};
332
+ // POST: /users/123/cards/456 {id: 456, number: '1234', name: 'J. Smith'}
333
+ // server returns: {id: 456, number: '1234', name: 'J. Smith'}
283
334
 
284
- // our custom method is mapped as well.
285
- card.$charge({amount:9.99});
286
- // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'}
335
+ // Our custom method is mapped as well (since it uses POST)
336
+ card.$charge({amount: 9.99});
337
+ // POST: /users/123/cards/456?amount=9.99&charge=true {id: 456, number: '1234', name: 'J. Smith'}
287
338
  });
288
339
 
289
- // we can create an instance as well
290
- var newCard = new CreditCard({number:'0123'});
291
- newCard.name = "Mike Smith";
292
- newCard.$save();
293
- // POST: /user/123/card {number:'0123', name:'Mike Smith'}
294
- // server returns: {id:789, number:'0123', name: 'Mike Smith'};
295
- expect(newCard.id).toEqual(789);
296
- * ```
340
+ // We can create an instance as well
341
+ var newCard = new CreditCard({number: '0123'});
342
+ newCard.name = 'Mike Smith';
343
+
344
+ var savePromise = newCard.$save();
345
+ // POST: /users/123/cards {number: '0123', name: 'Mike Smith'}
346
+ // server returns: {id: 789, number: '0123', name: 'Mike Smith'}
347
+
348
+ savePromise.then(function() {
349
+ // Once the promise is resolved, the created instance
350
+ // is populated with the data returned by the server
351
+ expect(newCard.id).toEqual(789);
352
+ });
353
+ ```
297
354
  *
298
- * The object returned from this function execution is a resource "class" which has "static" method
299
- * for each action in the definition.
355
+ * The object returned from a call to `$resource` is a resource "class" which has one "static"
356
+ * method for each action in the definition.
300
357
  *
301
- * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and
302
- * `headers`.
358
+ * Calling these methods invokes `$http` on the `url` template with the given HTTP `method`,
359
+ * `params` and `headers`.
303
360
  *
304
361
  * @example
305
362
  *
306
- * # User resource
363
+ * ### Accessing the response
307
364
  *
308
365
  * When the data is returned from the server then the object is an instance of the resource type and
309
366
  * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD
310
367
  * operations (create, read, update, delete) on server-side data.
311
-
368
+ *
312
369
  ```js
313
- var User = $resource('/user/:userId', {userId:'@id'});
314
- User.get({userId:123}, function(user) {
370
+ var User = $resource('/users/:userId', {userId: '@id'});
371
+ User.get({userId: 123}).$promise.then(function(user) {
315
372
  user.abc = true;
316
373
  user.$save();
317
374
  });
318
375
  ```
319
376
  *
320
- * It's worth noting that the success callback for `get`, `query` and other methods gets passed
321
- * in the response that came from the server as well as $http header getter function, so one
322
- * could rewrite the above example and get access to http headers as:
377
+ * It's worth noting that the success callback for `get`, `query` and other methods gets called with
378
+ * the resource instance (populated with the data that came from the server) as well as an `$http`
379
+ * header getter function, the HTTP status code and the response status text. So one could rewrite
380
+ * the above example and get access to HTTP headers as follows:
323
381
  *
324
382
  ```js
325
- var User = $resource('/user/:userId', {userId:'@id'});
326
- User.get({userId:123}, function(user, getResponseHeaders){
383
+ var User = $resource('/users/:userId', {userId: '@id'});
384
+ User.get({userId: 123}, function(user, getResponseHeaders) {
327
385
  user.abc = true;
328
386
  user.$save(function(user, putResponseHeaders) {
329
- //user => saved user object
330
- //putResponseHeaders => $http header getter
387
+ // `user` => saved `User` object
388
+ // `putResponseHeaders` => `$http` header getter
331
389
  });
332
390
  });
333
391
  ```
334
392
  *
335
- * You can also access the raw `$http` promise via the `$promise` property on the object returned
336
- *
337
- ```
338
- var User = $resource('/user/:userId', {userId:'@id'});
339
- User.get({userId:123})
340
- .$promise.then(function(user) {
341
- $scope.user = user;
342
- });
343
- ```
344
- *
345
393
  * @example
346
394
  *
347
- * # Creating a custom 'PUT' request
395
+ * ### Creating custom actions
348
396
  *
349
- * In this example we create a custom method on our resource to make a PUT request
350
- * ```js
351
- * var app = angular.module('app', ['ngResource', 'ngRoute']);
352
- *
353
- * // Some APIs expect a PUT request in the format URL/object/ID
354
- * // Here we are creating an 'update' method
355
- * app.factory('Notes', ['$resource', function($resource) {
356
- * return $resource('/notes/:id', null,
357
- * {
358
- * 'update': { method:'PUT' }
359
- * });
360
- * }]);
361
- *
362
- * // In our controller we get the ID from the URL using ngRoute and $routeParams
363
- * // We pass in $routeParams and our Notes factory along with $scope
364
- * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes',
365
- function($scope, $routeParams, Notes) {
366
- * // First get a note object from the factory
367
- * var note = Notes.get({ id:$routeParams.id });
368
- * $id = note.id;
369
- *
370
- * // Now call update passing in the ID first then the object you are updating
371
- * Notes.update({ id:$id }, note);
372
- *
373
- * // This will PUT /notes/ID with the note object in the request payload
374
- * }]);
375
- * ```
397
+ * In this example we create a custom method on our resource to make a PUT request:
398
+ *
399
+ ```js
400
+ var app = angular.module('app', ['ngResource']);
401
+
402
+ // Some APIs expect a PUT request in the format URL/object/ID
403
+ // Here we are creating an 'update' method
404
+ app.factory('Notes', ['$resource', function($resource) {
405
+ return $resource('/notes/:id', {id: '@id'}, {
406
+ update: {method: 'PUT'}
407
+ });
408
+ }]);
409
+
410
+ // In our controller we get the ID from the URL using `$location`
411
+ app.controller('NotesCtrl', ['$location', 'Notes', function($location, Notes) {
412
+ // First, retrieve the corresponding `Note` object from the server
413
+ // (Assuming a URL of the form `.../notes?id=XYZ`)
414
+ var noteId = $location.search().id;
415
+ var note = Notes.get({id: noteId});
416
+
417
+ note.$promise.then(function() {
418
+ note.content = 'Hello, world!';
419
+
420
+ // Now call `update` to save the changes on the server
421
+ Notes.update(note);
422
+ // This will PUT /notes/ID with the note object as the request payload
423
+
424
+ // Since `update` is a non-GET method, it will also be available on the instance
425
+ // (prefixed with `$`), so we could replace the `Note.update()` call with:
426
+ //note.$update();
427
+ });
428
+ }]);
429
+ ```
376
430
  *
377
431
  * @example
378
432
  *
379
- * # Cancelling requests
433
+ * ### Cancelling requests
380
434
  *
381
435
  * If an action's configuration specifies that it is cancellable, you can cancel the request related
382
436
  * to an instance or collection (as long as it is a result of a "non-instance" call):
383
437
  *
384
438
  ```js
385
439
  // ...defining the `Hotel` resource...
386
- var Hotel = $resource('/api/hotel/:id', {id: '@id'}, {
440
+ var Hotel = $resource('/api/hotels/:id', {id: '@id'}, {
387
441
  // Let's make the `query()` method cancellable
388
442
  query: {method: 'get', isArray: true, cancellable: true}
389
443
  });
@@ -393,24 +447,134 @@ function shallowClearAndCopy(src, dst) {
393
447
  this.onDestinationChanged = function onDestinationChanged(destination) {
394
448
  // We don't care about any pending request for hotels
395
449
  // in a different destination any more
396
- this.availableHotels.$cancelRequest();
450
+ if (this.availableHotels) {
451
+ this.availableHotels.$cancelRequest();
452
+ }
397
453
 
398
- // Let's query for hotels in '<destination>'
399
- // (calls: /api/hotel?location=<destination>)
454
+ // Let's query for hotels in `destination`
455
+ // (calls: /api/hotels?location=<destination>)
400
456
  this.availableHotels = Hotel.query({location: destination});
401
457
  };
402
458
  ```
403
459
  *
460
+ * @example
461
+ *
462
+ * ### Using interceptors
463
+ *
464
+ * You can use interceptors to transform the request or response, perform additional operations, and
465
+ * modify the returned instance/collection. The following example, uses `request` and `response`
466
+ * interceptors to augment the returned instance with additional info:
467
+ *
468
+ ```js
469
+ var Thing = $resource('/api/things/:id', {id: '@id'}, {
470
+ save: {
471
+ method: 'POST',
472
+ interceptor: {
473
+ request: function(config) {
474
+ // Before the request is sent out, store a timestamp on the request config
475
+ config.requestTimestamp = Date.now();
476
+ return config;
477
+ },
478
+ response: function(response) {
479
+ // Get the instance from the response object
480
+ var instance = response.resource;
481
+
482
+ // Augment the instance with a custom `saveLatency` property, computed as the time
483
+ // between sending the request and receiving the response.
484
+ instance.saveLatency = Date.now() - response.config.requestTimestamp;
485
+
486
+ // Return the instance
487
+ return instance;
488
+ }
489
+ }
490
+ }
491
+ });
492
+
493
+ Thing.save({foo: 'bar'}).$promise.then(function(thing) {
494
+ console.log('That thing was saved in ' + thing.saveLatency + 'ms.');
495
+ });
496
+ ```
497
+ *
404
498
  */
405
499
  angular.module('ngResource', ['ng']).
406
- provider('$resource', function() {
407
- var PROTOCOL_AND_DOMAIN_REGEX = /^https?:\/\/[^\/]*/;
500
+ info({ angularVersion: '1.7.9' }).
501
+ provider('$resource', function ResourceProvider() {
502
+ var PROTOCOL_AND_IPV6_REGEX = /^https?:\/\/\[[^\]]*][^/]*/;
503
+
408
504
  var provider = this;
409
505
 
506
+ /**
507
+ * @ngdoc property
508
+ * @name $resourceProvider#defaults
509
+ * @description
510
+ * Object containing default options used when creating `$resource` instances.
511
+ *
512
+ * The default values satisfy a wide range of usecases, but you may choose to overwrite any of
513
+ * them to further customize your instances. The available properties are:
514
+ *
515
+ * - **stripTrailingSlashes** – `{boolean}` – If true, then the trailing slashes from any
516
+ * calculated URL will be stripped.<br />
517
+ * (Defaults to true.)
518
+ * - **cancellable** – `{boolean}` – If true, the request made by a "non-instance" call will be
519
+ * cancelled (if not already completed) by calling `$cancelRequest()` on the call's return
520
+ * value. For more details, see {@link ngResource.$resource}. This can be overwritten per
521
+ * resource class or action.<br />
522
+ * (Defaults to false.)
523
+ * - **actions** - `{Object.<Object>}` - A hash with default actions declarations. Actions are
524
+ * high-level methods corresponding to RESTful actions/methods on resources. An action may
525
+ * specify what HTTP method to use, what URL to hit, if the return value will be a single
526
+ * object or a collection (array) of objects etc. For more details, see
527
+ * {@link ngResource.$resource}. The actions can also be enhanced or overwritten per resource
528
+ * class.<br />
529
+ * The default actions are:
530
+ * ```js
531
+ * {
532
+ * get: {method: 'GET'},
533
+ * save: {method: 'POST'},
534
+ * query: {method: 'GET', isArray: true},
535
+ * remove: {method: 'DELETE'},
536
+ * delete: {method: 'DELETE'}
537
+ * }
538
+ * ```
539
+ *
540
+ * #### Example
541
+ *
542
+ * For example, you can specify a new `update` action that uses the `PUT` HTTP verb:
543
+ *
544
+ * ```js
545
+ * angular.
546
+ * module('myApp').
547
+ * config(['$resourceProvider', function ($resourceProvider) {
548
+ * $resourceProvider.defaults.actions.update = {
549
+ * method: 'PUT'
550
+ * };
551
+ * }]);
552
+ * ```
553
+ *
554
+ * Or you can even overwrite the whole `actions` list and specify your own:
555
+ *
556
+ * ```js
557
+ * angular.
558
+ * module('myApp').
559
+ * config(['$resourceProvider', function ($resourceProvider) {
560
+ * $resourceProvider.defaults.actions = {
561
+ * create: {method: 'POST'},
562
+ * get: {method: 'GET'},
563
+ * getAll: {method: 'GET', isArray:true},
564
+ * update: {method: 'PUT'},
565
+ * delete: {method: 'DELETE'}
566
+ * };
567
+ * });
568
+ * ```
569
+ *
570
+ */
410
571
  this.defaults = {
411
572
  // Strip slashes by default
412
573
  stripTrailingSlashes: true,
413
574
 
575
+ // Make non-instance requests cancellable (via `$cancelRequest()`)
576
+ cancellable: false,
577
+
414
578
  // Default actions configuration
415
579
  actions: {
416
580
  'get': {method: 'GET'},
@@ -424,49 +588,15 @@ angular.module('ngResource', ['ng']).
424
588
  this.$get = ['$http', '$log', '$q', '$timeout', function($http, $log, $q, $timeout) {
425
589
 
426
590
  var noop = angular.noop,
427
- forEach = angular.forEach,
428
- extend = angular.extend,
429
- copy = angular.copy,
430
- isFunction = angular.isFunction;
431
-
432
- /**
433
- * We need our custom method because encodeURIComponent is too aggressive and doesn't follow
434
- * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set
435
- * (pchar) allowed in path segments:
436
- * segment = *pchar
437
- * pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
438
- * pct-encoded = "%" HEXDIG HEXDIG
439
- * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
440
- * sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
441
- * / "*" / "+" / "," / ";" / "="
442
- */
443
- function encodeUriSegment(val) {
444
- return encodeUriQuery(val, true).
445
- replace(/%26/gi, '&').
446
- replace(/%3D/gi, '=').
447
- replace(/%2B/gi, '+');
448
- }
449
-
450
-
451
- /**
452
- * This method is intended for encoding *key* or *value* parts of query component. We need a
453
- * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't
454
- * have to be encoded per http://tools.ietf.org/html/rfc3986:
455
- * query = *( pchar / "/" / "?" )
456
- * pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
457
- * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
458
- * pct-encoded = "%" HEXDIG HEXDIG
459
- * sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
460
- * / "*" / "+" / "," / ";" / "="
461
- */
462
- function encodeUriQuery(val, pctEncodeSpaces) {
463
- return encodeURIComponent(val).
464
- replace(/%40/gi, '@').
465
- replace(/%3A/gi, ':').
466
- replace(/%24/g, '$').
467
- replace(/%2C/gi, ',').
468
- replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));
469
- }
591
+ forEach = angular.forEach,
592
+ extend = angular.extend,
593
+ copy = angular.copy,
594
+ isArray = angular.isArray,
595
+ isDefined = angular.isDefined,
596
+ isFunction = angular.isFunction,
597
+ isNumber = angular.isNumber,
598
+ encodeUriQuery = angular.$$encodeUriQuery,
599
+ encodeUriSegment = angular.$$encodeUriSegment;
470
600
 
471
601
  function Route(template, defaults) {
472
602
  this.template = template;
@@ -480,42 +610,42 @@ angular.module('ngResource', ['ng']).
480
610
  url = actionUrl || self.template,
481
611
  val,
482
612
  encodedVal,
483
- protocolAndDomain = '';
613
+ protocolAndIpv6 = '';
484
614
 
485
- var urlParams = self.urlParams = {};
615
+ var urlParams = self.urlParams = Object.create(null);
486
616
  forEach(url.split(/\W/), function(param) {
487
617
  if (param === 'hasOwnProperty') {
488
- throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name.");
618
+ throw $resourceMinErr('badname', 'hasOwnProperty is not a valid parameter name.');
489
619
  }
490
- if (!(new RegExp("^\\d+$").test(param)) && param &&
491
- (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) {
620
+ if (!(new RegExp('^\\d+$').test(param)) && param &&
621
+ (new RegExp('(^|[^\\\\]):' + param + '(\\W|$)').test(url))) {
492
622
  urlParams[param] = {
493
- isQueryParamValue: (new RegExp("\\?.*=:" + param + "(?:\\W|$)")).test(url)
623
+ isQueryParamValue: (new RegExp('\\?.*=:' + param + '(?:\\W|$)')).test(url)
494
624
  };
495
625
  }
496
626
  });
497
627
  url = url.replace(/\\:/g, ':');
498
- url = url.replace(PROTOCOL_AND_DOMAIN_REGEX, function(match) {
499
- protocolAndDomain = match;
628
+ url = url.replace(PROTOCOL_AND_IPV6_REGEX, function(match) {
629
+ protocolAndIpv6 = match;
500
630
  return '';
501
631
  });
502
632
 
503
633
  params = params || {};
504
634
  forEach(self.urlParams, function(paramInfo, urlParam) {
505
635
  val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam];
506
- if (angular.isDefined(val) && val !== null) {
636
+ if (isDefined(val) && val !== null) {
507
637
  if (paramInfo.isQueryParamValue) {
508
638
  encodedVal = encodeUriQuery(val, true);
509
639
  } else {
510
640
  encodedVal = encodeUriSegment(val);
511
641
  }
512
- url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) {
642
+ url = url.replace(new RegExp(':' + urlParam + '(\\W|$)', 'g'), function(match, p1) {
513
643
  return encodedVal + p1;
514
644
  });
515
645
  } else {
516
- url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match,
646
+ url = url.replace(new RegExp('(/?):' + urlParam + '(\\W|$)', 'g'), function(match,
517
647
  leadingSlashes, tail) {
518
- if (tail.charAt(0) == '/') {
648
+ if (tail.charAt(0) === '/') {
519
649
  return tail;
520
650
  } else {
521
651
  return leadingSlashes + tail;
@@ -529,11 +659,12 @@ angular.module('ngResource', ['ng']).
529
659
  url = url.replace(/\/+$/, '') || '/';
530
660
  }
531
661
 
532
- // then replace collapse `/.` if found in the last URL path segment before the query
533
- // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x`
662
+ // Collapse `/.` if found in the last URL path segment before the query.
663
+ // E.g. `http://url.com/id/.format?q=x` becomes `http://url.com/id.format?q=x`.
534
664
  url = url.replace(/\/\.(?=\w+($|\?))/, '.');
535
- // replace escaped `/\.` with `/.`
536
- config.url = protocolAndDomain + url.replace(/\/\\\./, '/.');
665
+ // Replace escaped `/\.` with `/.`.
666
+ // (If `\.` comes from a param value, it will be encoded as `%5C.`.)
667
+ config.url = protocolAndIpv6 + url.replace(/\/(\\|%5C)\./, '/.');
537
668
 
538
669
 
539
670
  // set params - delegate param encoding to $http
@@ -556,8 +687,8 @@ angular.module('ngResource', ['ng']).
556
687
  var ids = {};
557
688
  actionParams = extend({}, paramDefaults, actionParams);
558
689
  forEach(actionParams, function(value, key) {
559
- if (isFunction(value)) { value = value(); }
560
- ids[key] = value && value.charAt && value.charAt(0) == '@' ?
690
+ if (isFunction(value)) { value = value(data); }
691
+ ids[key] = value && value.charAt && value.charAt(0) === '@' ?
561
692
  lookupDottedPath(data, value.substr(1)) : value;
562
693
  });
563
694
  return ids;
@@ -575,17 +706,17 @@ angular.module('ngResource', ['ng']).
575
706
  var data = extend({}, this);
576
707
  delete data.$promise;
577
708
  delete data.$resolved;
709
+ delete data.$cancelRequest;
578
710
  return data;
579
711
  };
580
712
 
581
713
  forEach(actions, function(action, name) {
582
- var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method);
714
+ var hasBody = action.hasBody === true || (action.hasBody !== false && /^(POST|PUT|PATCH)$/i.test(action.method));
583
715
  var numericTimeout = action.timeout;
584
- var cancellable = angular.isDefined(action.cancellable) ? action.cancellable :
585
- (options && angular.isDefined(options.cancellable)) ? options.cancellable :
586
- provider.defaults.cancellable;
716
+ var cancellable = isDefined(action.cancellable) ?
717
+ action.cancellable : route.defaults.cancellable;
587
718
 
588
- if (numericTimeout && !angular.isNumber(numericTimeout)) {
719
+ if (numericTimeout && !isNumber(numericTimeout)) {
589
720
  $log.debug('ngResource:\n' +
590
721
  ' Only numeric values are allowed as `timeout`.\n' +
591
722
  ' Promises are not supported in $resource, because the same value would ' +
@@ -596,54 +727,61 @@ angular.module('ngResource', ['ng']).
596
727
  }
597
728
 
598
729
  Resource[name] = function(a1, a2, a3, a4) {
599
- var params = {}, data, success, error;
730
+ var params = {}, data, onSuccess, onError;
600
731
 
601
- /* jshint -W086 */ /* (purposefully fall through case statements) */
602
732
  switch (arguments.length) {
603
733
  case 4:
604
- error = a4;
605
- success = a3;
606
- //fallthrough
734
+ onError = a4;
735
+ onSuccess = a3;
736
+ // falls through
607
737
  case 3:
608
738
  case 2:
609
739
  if (isFunction(a2)) {
610
740
  if (isFunction(a1)) {
611
- success = a1;
612
- error = a2;
741
+ onSuccess = a1;
742
+ onError = a2;
613
743
  break;
614
744
  }
615
745
 
616
- success = a2;
617
- error = a3;
618
- //fallthrough
746
+ onSuccess = a2;
747
+ onError = a3;
748
+ // falls through
619
749
  } else {
620
750
  params = a1;
621
751
  data = a2;
622
- success = a3;
752
+ onSuccess = a3;
623
753
  break;
624
754
  }
755
+ // falls through
625
756
  case 1:
626
- if (isFunction(a1)) success = a1;
757
+ if (isFunction(a1)) onSuccess = a1;
627
758
  else if (hasBody) data = a1;
628
759
  else params = a1;
629
760
  break;
630
761
  case 0: break;
631
762
  default:
632
763
  throw $resourceMinErr('badargs',
633
- "Expected up to 4 arguments [params, data, success, error], got {0} arguments",
764
+ 'Expected up to 4 arguments [params, data, success, error], got {0} arguments',
634
765
  arguments.length);
635
766
  }
636
- /* jshint +W086 */ /* (purposefully fall through case statements) */
637
767
 
638
768
  var isInstanceCall = this instanceof Resource;
639
769
  var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data));
640
770
  var httpConfig = {};
771
+ var requestInterceptor = action.interceptor && action.interceptor.request || undefined;
772
+ var requestErrorInterceptor = action.interceptor && action.interceptor.requestError ||
773
+ undefined;
641
774
  var responseInterceptor = action.interceptor && action.interceptor.response ||
642
775
  defaultResponseInterceptor;
643
776
  var responseErrorInterceptor = action.interceptor && action.interceptor.responseError ||
644
- undefined;
777
+ $q.reject;
778
+ var successCallback = onSuccess ? function(val) {
779
+ onSuccess(val, response.headers, response.status, response.statusText);
780
+ } : undefined;
781
+ var errorCallback = onError || undefined;
645
782
  var timeoutDeferred;
646
783
  var numericTimeoutPromise;
784
+ var response;
647
785
 
648
786
  forEach(action, function(value, key) {
649
787
  switch (key) {
@@ -672,23 +810,28 @@ angular.module('ngResource', ['ng']).
672
810
  extend({}, extractParams(data, action.params || {}), params),
673
811
  action.url);
674
812
 
675
- var promise = $http(httpConfig).then(function(response) {
676
- var data = response.data;
813
+ // Start the promise chain
814
+ var promise = $q.
815
+ resolve(httpConfig).
816
+ then(requestInterceptor).
817
+ catch(requestErrorInterceptor).
818
+ then($http);
819
+
820
+ promise = promise.then(function(resp) {
821
+ var data = resp.data;
677
822
 
678
823
  if (data) {
679
824
  // Need to convert action.isArray to boolean in case it is undefined
680
- // jshint -W018
681
- if (angular.isArray(data) !== (!!action.isArray)) {
825
+ if (isArray(data) !== (!!action.isArray)) {
682
826
  throw $resourceMinErr('badcfg',
683
827
  'Error in resource configuration for action `{0}`. Expected response to ' +
684
828
  'contain an {1} but got an {2} (Request: {3} {4})', name, action.isArray ? 'array' : 'object',
685
- angular.isArray(data) ? 'array' : 'object', httpConfig.method, httpConfig.url);
829
+ isArray(data) ? 'array' : 'object', httpConfig.method, httpConfig.url);
686
830
  }
687
- // jshint +W018
688
831
  if (action.isArray) {
689
832
  value.length = 0;
690
833
  forEach(data, function(item) {
691
- if (typeof item === "object") {
834
+ if (typeof item === 'object') {
692
835
  value.push(new Resource(item));
693
836
  } else {
694
837
  // Valid JSON values may be string literals, and these should not be converted
@@ -703,30 +846,27 @@ angular.module('ngResource', ['ng']).
703
846
  value.$promise = promise; // Restore the promise
704
847
  }
705
848
  }
706
- response.resource = value;
707
849
 
708
- return response;
709
- }, function(response) {
710
- (error || noop)(response);
711
- return $q.reject(response);
850
+ resp.resource = value;
851
+ response = resp;
852
+ return responseInterceptor(resp);
853
+ }, function(rejectionOrResponse) {
854
+ rejectionOrResponse.resource = value;
855
+ response = rejectionOrResponse;
856
+ return responseErrorInterceptor(rejectionOrResponse);
712
857
  });
713
858
 
714
- promise['finally'](function() {
859
+ promise = promise['finally'](function() {
715
860
  value.$resolved = true;
716
861
  if (!isInstanceCall && cancellable) {
717
- value.$cancelRequest = angular.noop;
862
+ value.$cancelRequest = noop;
718
863
  $timeout.cancel(numericTimeoutPromise);
719
864
  timeoutDeferred = numericTimeoutPromise = httpConfig.timeout = null;
720
865
  }
721
866
  });
722
867
 
723
- promise = promise.then(
724
- function(response) {
725
- var value = responseInterceptor(response);
726
- (success || noop)(value, response.headers);
727
- return value;
728
- },
729
- responseErrorInterceptor);
868
+ // Run the `success`/`error` callbacks, but do not let them affect the returned promise.
869
+ promise.then(successCallback, errorCallback);
730
870
 
731
871
  if (!isInstanceCall) {
732
872
  // we are creating instance / collection
@@ -734,13 +874,20 @@ angular.module('ngResource', ['ng']).
734
874
  // - return the instance / collection
735
875
  value.$promise = promise;
736
876
  value.$resolved = false;
737
- if (cancellable) value.$cancelRequest = timeoutDeferred.resolve;
877
+ if (cancellable) value.$cancelRequest = cancelRequest;
738
878
 
739
879
  return value;
740
880
  }
741
881
 
742
882
  // instance call
743
883
  return promise;
884
+
885
+ function cancelRequest(value) {
886
+ promise.catch(noop);
887
+ if (timeoutDeferred !== null) {
888
+ timeoutDeferred.resolve(value);
889
+ }
890
+ }
744
891
  };
745
892
 
746
893
 
@@ -753,10 +900,6 @@ angular.module('ngResource', ['ng']).
753
900
  };
754
901
  });
755
902
 
756
- Resource.bind = function(additionalParamDefaults) {
757
- return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions);
758
- };
759
-
760
903
  return Resource;
761
904
  }
762
905