main.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. var config;
  2. if (typeof(require) === 'undefined') {
  3. /* XXX: Hack to work around r.js's stupid parsing.
  4. * We want to save the configuration in a variable so that we can reuse it in
  5. * tests/main.js.
  6. */
  7. require = { // jshint ignore:line
  8. config: function (c) {
  9. config = c;
  10. }
  11. };
  12. }
  13. require.config({
  14. baseUrl: '.',
  15. paths: {
  16. "backbone": "components/backbone/backbone",
  17. "backbone.browserStorage": "components/backbone.browserStorage/backbone.browserStorage",
  18. "backbone.overview": "components/backbone.overview/backbone.overview",
  19. "eventemitter": "components/otr/build/dep/eventemitter",
  20. "jquery": "components/jquery/dist/jquery",
  21. "jquery-private": "src/jquery-private",
  22. "jquery.browser": "components/jquery.browser/dist/jquery.browser",
  23. "jquery.easing": "components/jquery-easing-original/index", // XXX: Only required for https://conversejs.org website
  24. "moment": "components/momentjs/moment",
  25. "strophe": "components/strophejs/src/wrapper",
  26. "strophe-base64": "components/strophejs/src/base64",
  27. "strophe-bosh": "components/strophejs/src/bosh",
  28. "strophe-core": "components/strophejs/src/core",
  29. "strophe-md5": "components/strophejs/src/md5",
  30. "strophe-polyfill": "components/strophejs/src/polyfills",
  31. "strophe-sha1": "components/strophejs/src/sha1",
  32. "strophe-utils": "components/strophejs/src/utils",
  33. "strophe-websocket": "components/strophejs/src/websocket",
  34. "strophe.disco": "components/strophejs-plugins/disco/strophe.disco",
  35. "strophe.ping": "src/strophe.ping",
  36. "strophe.rsm": "components/strophejs-plugins/rsm/strophe.rsm",
  37. "strophe.vcard": "src/strophe.vcard",
  38. "text": 'components/requirejs-text/text',
  39. "tpl": 'components/requirejs-tpl-jcbrand/tpl',
  40. "typeahead": "components/typeahead.js/index",
  41. "underscore": "components/underscore/underscore",
  42. "utils": "src/utils",
  43. "polyfill": "src/polyfill",
  44. // Converse
  45. "converse-core": "src/converse-core",
  46. "converse-api": "src/converse-api",
  47. "converse-muc": "src/converse-muc",
  48. "converse-otr": "src/converse-otr",
  49. "converse-ping": "src/converse-ping",
  50. "converse-register": "src/converse-register",
  51. "converse-templates": "src/templates",
  52. // Off-the-record-encryption
  53. "bigint": "src/bigint",
  54. "crypto": "src/crypto",
  55. "crypto.aes": "components/otr/vendor/cryptojs/aes",
  56. "crypto.cipher-core": "components/otr/vendor/cryptojs/cipher-core",
  57. "crypto.core": "components/otr/vendor/cryptojs/core",
  58. "crypto.enc-base64": "components/otr/vendor/cryptojs/enc-base64",
  59. "crypto.evpkdf": "components/crypto-js-evanvosberg/src/evpkdf",
  60. "crypto.hmac": "components/otr/vendor/cryptojs/hmac",
  61. "crypto.md5": "components/crypto-js-evanvosberg/src/md5",
  62. "crypto.mode-ctr": "components/otr/vendor/cryptojs/mode-ctr",
  63. "crypto.pad-nopadding": "components/otr/vendor/cryptojs/pad-nopadding",
  64. "crypto.sha1": "components/otr/vendor/cryptojs/sha1",
  65. "crypto.sha256": "components/otr/vendor/cryptojs/sha256",
  66. "salsa20": "components/otr/build/dep/salsa20",
  67. "otr": "src/otr",
  68. // Locales paths
  69. "locales": "src/locales",
  70. "jed": "components/jed/jed",
  71. "af": "locale/af/LC_MESSAGES/converse.json",
  72. "de": "locale/de/LC_MESSAGES/converse.json",
  73. "en": "locale/en/LC_MESSAGES/converse.json",
  74. "es": "locale/es/LC_MESSAGES/converse.json",
  75. "fr": "locale/fr/LC_MESSAGES/converse.json",
  76. "he": "locale/he/LC_MESSAGES/converse.json",
  77. "hu": "locale/hu/LC_MESSAGES/converse.json",
  78. "id": "locale/id/LC_MESSAGES/converse.json",
  79. "it": "locale/it/LC_MESSAGES/converse.json",
  80. "ja": "locale/ja/LC_MESSAGES/converse.json",
  81. "nb": "locale/nb/LC_MESSAGES/converse.json",
  82. "nl": "locale/nl/LC_MESSAGES/converse.json",
  83. "pl": "locale/pl/LC_MESSAGES/converse.json",
  84. "pt_BR": "locale/pt_BR/LC_MESSAGES/converse.json",
  85. "ru": "locale/ru/LC_MESSAGES/converse.json",
  86. "uk": "locale/uk/LC_MESSAGES/converse.json",
  87. "zh": "locale/zh/LC_MESSAGES/converse.json",
  88. "moment_with_locales": "src/moment_locales",
  89. 'moment_af': "components/momentjs/locale/af",
  90. 'moment_de': "components/momentjs/locale/de",
  91. 'moment_es': "components/momentjs/locale/es",
  92. 'moment_fr': "components/momentjs/locale/fr",
  93. 'moment_he': "components/momentjs/locale/he",
  94. 'moment_hu': "components/momentjs/locale/hu",
  95. 'moment_id': "components/momentjs/locale/id",
  96. 'moment_it': "components/momentjs/locale/it",
  97. 'moment_ja': "components/momentjs/locale/ja",
  98. 'moment_nb': "components/momentjs/locale/nb",
  99. 'moment_nl': "components/momentjs/locale/nl",
  100. 'moment_pl': "components/momentjs/locale/pl",
  101. 'moment_pt-br': "components/momentjs/locale/pt-br",
  102. 'moment_ru': "components/momentjs/locale/ru",
  103. 'moment_uk': "components/momentjs/locale/uk",
  104. 'moment_zh': "components/momentjs/locale/zh-cn",
  105. // Templates
  106. "action": "src/templates/action",
  107. "add_contact_dropdown": "src/templates/add_contact_dropdown",
  108. "add_contact_form": "src/templates/add_contact_form",
  109. "change_status_message": "src/templates/change_status_message",
  110. "chat_status": "src/templates/chat_status",
  111. "chatarea": "src/templates/chatarea",
  112. "chatbox": "src/templates/chatbox",
  113. "chatroom": "src/templates/chatroom",
  114. "chatroom_form": "src/templates/chatroom_form",
  115. "chatroom_password_form": "src/templates/chatroom_password_form",
  116. "chatroom_sidebar": "src/templates/chatroom_sidebar",
  117. "chatrooms_tab": "src/templates/chatrooms_tab",
  118. "chats_panel": "src/templates/chats_panel",
  119. "choose_status": "src/templates/choose_status",
  120. "contacts_panel": "src/templates/contacts_panel",
  121. "contacts_tab": "src/templates/contacts_tab",
  122. "controlbox": "src/templates/controlbox",
  123. "controlbox_toggle": "src/templates/controlbox_toggle",
  124. "field": "src/templates/field",
  125. "form_captcha": "src/templates/form_captcha",
  126. "form_checkbox": "src/templates/form_checkbox",
  127. "form_input": "src/templates/form_input",
  128. "form_select": "src/templates/form_select",
  129. "form_textarea": "src/templates/form_textarea",
  130. "form_username": "src/templates/form_username",
  131. "group_header": "src/templates/group_header",
  132. "info": "src/templates/info",
  133. "login_panel": "src/templates/login_panel",
  134. "login_tab": "src/templates/login_tab",
  135. "message": "src/templates/message",
  136. "new_day": "src/templates/new_day",
  137. "occupant": "src/templates/occupant",
  138. "pending_contact": "src/templates/pending_contact",
  139. "pending_contacts": "src/templates/pending_contacts",
  140. "register_panel": "src/templates/register_panel",
  141. "register_tab": "src/templates/register_tab",
  142. "registration_form": "src/templates/registration_form",
  143. "registration_request": "src/templates/registration_request",
  144. "requesting_contact": "src/templates/requesting_contact",
  145. "requesting_contacts": "src/templates/requesting_contacts",
  146. "room_description": "src/templates/room_description",
  147. "room_item": "src/templates/room_item",
  148. "room_panel": "src/templates/room_panel",
  149. "roster": "src/templates/roster",
  150. "roster_item": "src/templates/roster_item",
  151. "search_contact": "src/templates/search_contact",
  152. "select_option": "src/templates/select_option",
  153. "status_option": "src/templates/status_option",
  154. "toggle_chats": "src/templates/toggle_chats",
  155. "toolbar": "src/templates/toolbar",
  156. "toolbar_otr": "src/templates/toolbar_otr",
  157. "trimmed_chat": "src/templates/trimmed_chat",
  158. "vcard": "src/templates/vcard"
  159. },
  160. map: {
  161. // '*' means all modules will get 'jquery-private'
  162. // for their 'jquery' dependency.
  163. '*': { 'jquery': 'jquery-private' },
  164. // 'jquery-private' wants the real jQuery module
  165. // though. If this line was not here, there would
  166. // be an unresolvable cyclic dependency.
  167. 'jquery-private': { 'jquery': 'jquery' }
  168. },
  169. tpl: {
  170. // Configuration for requirejs-tpl
  171. // Use Mustache style syntax for variable interpolation
  172. templateSettings: {
  173. evaluate : /\{\[([\s\S]+?)\]\}/g,
  174. interpolate : /\{\{([\s\S]+?)\}\}/g
  175. }
  176. },
  177. // define module dependencies for modules not using define
  178. shim: {
  179. 'crypto.aes': { deps: ['crypto.cipher-core'] },
  180. 'crypto.cipher-core': { deps: ['crypto.enc-base64', 'crypto.evpkdf'] },
  181. 'crypto.enc-base64': { deps: ['crypto.core'] },
  182. 'crypto.evpkdf': { deps: ['crypto.md5'] },
  183. 'crypto.hmac': { deps: ['crypto.core'] },
  184. 'crypto.md5': { deps: ['crypto.core'] },
  185. 'crypto.mode-ctr': { deps: ['crypto.cipher-core'] },
  186. 'crypto.pad-nopadding': { deps: ['crypto.cipher-core'] },
  187. 'crypto.sha1': { deps: ['crypto.core'] },
  188. 'crypto.sha256': { deps: ['crypto.core'] },
  189. 'bigint': { deps: ['crypto'] },
  190. 'strophe.ping': { deps: ['strophe'] },
  191. 'strophe.register': { deps: ['strophe'] },
  192. 'strophe.vcard': { deps: ['strophe'] }
  193. }
  194. });