@kumologica/sdk 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/README.md +1 -0
  2. package/bin/kl.js +3 -0
  3. package/cli/cli.js +6 -0
  4. package/cli/commands/build-commands/aws.js +49 -0
  5. package/cli/commands/build-commands/azure.js +43 -0
  6. package/cli/commands/build-commands/kumohub.js +7 -0
  7. package/cli/commands/build.js +6 -0
  8. package/cli/commands/create.js +32 -0
  9. package/cli/commands/deploy-commands/kumohub.js +114 -0
  10. package/cli/commands/deploy.js +6 -0
  11. package/cli/commands/doc-commands/html.js +61 -0
  12. package/cli/commands/doc.js +6 -0
  13. package/cli/commands/export-commands/cloudformation.js +338 -0
  14. package/cli/commands/export-commands/serverless.js +164 -0
  15. package/cli/commands/export-commands/terraform-commands/aws.js +193 -0
  16. package/cli/commands/export-commands/terraform-commands/azure.js +148 -0
  17. package/cli/commands/export-commands/terraform.js +6 -0
  18. package/cli/commands/export-commands/utils/validator.js +152 -0
  19. package/cli/commands/export.js +6 -0
  20. package/cli/commands/import-commands/mulesoft.js +61 -0
  21. package/cli/commands/import.js +6 -0
  22. package/cli/commands/open.js +46 -0
  23. package/cli/commands/test-utils/TestSuiteController.js +359 -0
  24. package/cli/commands/test-utils/TestSuiteController.test.js +171 -0
  25. package/cli/commands/test-utils/fixtures/example3-flow.json +148 -0
  26. package/cli/commands/test-utils/fixtures/package.json +6 -0
  27. package/cli/commands/test-utils/fixtures/s3-event.js +43 -0
  28. package/cli/commands/test-utils/util/output.js +14 -0
  29. package/cli/commands/test-utils/util/updates/index.js +17 -0
  30. package/cli/commands/test-utils/util/updates/pkg.js +13 -0
  31. package/cli/commands/test-utils/util/updates/templates/default-settings.js +209 -0
  32. package/cli/commands/test.js +66 -0
  33. package/cli/commands/utils.js +14 -0
  34. package/package.json +158 -0
  35. package/src/app/lib/aws/aws-profile.js +43 -0
  36. package/src/app/lib/aws/ca-alexa-api.js +29 -0
  37. package/src/app/lib/aws/ca-apigw-api.js +216 -0
  38. package/src/app/lib/aws/ca-cloudwatch-api.js +78 -0
  39. package/src/app/lib/aws/ca-codecommit-api.js +63 -0
  40. package/src/app/lib/aws/ca-dynamodb-api.js +27 -0
  41. package/src/app/lib/aws/ca-elb-api.js +44 -0
  42. package/src/app/lib/aws/ca-events-api.js +27 -0
  43. package/src/app/lib/aws/ca-iot-api.js +105 -0
  44. package/src/app/lib/aws/ca-s3-api.js +115 -0
  45. package/src/app/lib/aws/ca-sns-api.js +38 -0
  46. package/src/app/lib/aws/ca-sqs-api.js +51 -0
  47. package/src/app/lib/aws/cf.js +439 -0
  48. package/src/app/lib/aws/index.js +970 -0
  49. package/src/app/lib/aws/kl-iam-api.js +27 -0
  50. package/src/app/lib/aws/kl-rekognition-api.js +66 -0
  51. package/src/app/lib/aws/kl-ssm-api.js +24 -0
  52. package/src/app/lib/azure/index.js +80 -0
  53. package/src/app/lib/dependencies.js +50 -0
  54. package/src/app/lib/kumohub/index.js +201 -0
  55. package/src/app/lib/runtime-loader/index.js +42 -0
  56. package/src/app/lib/serverless/index.js +318 -0
  57. package/src/app/lib/stores/aws-cloud-config-store.js +35 -0
  58. package/src/app/lib/stores/azure-config-store.js +24 -0
  59. package/src/app/lib/stores/kumohub-config-store.js +24 -0
  60. package/src/app/lib/stores/project-info-config-store.js +26 -0
  61. package/src/app/lib/stores/settings-cloud-store.js +117 -0
  62. package/src/app/lib/stores/settings-cloud-store.spec.js +26 -0
  63. package/src/app/lib/stores/settings-network-store.js +119 -0
  64. package/src/app/lib/stores/settings-network-store.spec.js +27 -0
  65. package/src/app/lib/stores/store.js +97 -0
  66. package/src/app/lib/stores/test-config-store.js +26 -0
  67. package/src/app/lib/stores/user-preference-store.js +44 -0
  68. package/src/app/lib/utils/editor.js +98 -0
  69. package/src/app/lib/utils/fix-path.js +15 -0
  70. package/src/app/main-process/favicon.ico +0 -0
  71. package/src/app/main-process/main-window.js +209 -0
  72. package/src/app/main-process/menu.js +219 -0
  73. package/src/app/main-process/modal-home.js +118 -0
  74. package/src/app/main-process/modal-newproject.js +119 -0
  75. package/src/app/main-process/modal-nodelibrary.js +90 -0
  76. package/src/app/main-process/modal-welcome.js +114 -0
  77. package/src/app/main-process/runtime-manager.js +141 -0
  78. package/src/app/main.js +590 -0
  79. package/src/app/preload.js +633 -0
  80. package/src/app/ui/editor-api/lib/admin/context.js +42 -0
  81. package/src/app/ui/editor-api/lib/admin/flow.js +55 -0
  82. package/src/app/ui/editor-api/lib/admin/flows.js +53 -0
  83. package/src/app/ui/editor-api/lib/admin/index.js +155 -0
  84. package/src/app/ui/editor-api/lib/admin/nodes.js +164 -0
  85. package/src/app/ui/editor-api/lib/auth/clients.js +17 -0
  86. package/src/app/ui/editor-api/lib/auth/index.js +267 -0
  87. package/src/app/ui/editor-api/lib/auth/permissions.js +51 -0
  88. package/src/app/ui/editor-api/lib/auth/strategies.js +144 -0
  89. package/src/app/ui/editor-api/lib/auth/tokens.js +138 -0
  90. package/src/app/ui/editor-api/lib/auth/users.js +122 -0
  91. package/src/app/ui/editor-api/lib/editor/comms.js +247 -0
  92. package/src/app/ui/editor-api/lib/editor/credentials.js +22 -0
  93. package/src/app/ui/editor-api/lib/editor/index.js +234 -0
  94. package/src/app/ui/editor-api/lib/editor/library.js +69 -0
  95. package/src/app/ui/editor-api/lib/editor/locales.js +37 -0
  96. package/src/app/ui/editor-api/lib/editor/projects.js +497 -0
  97. package/src/app/ui/editor-api/lib/editor/settings.js +118 -0
  98. package/src/app/ui/editor-api/lib/editor/sshkeys.js +87 -0
  99. package/src/app/ui/editor-api/lib/editor/theme.js +184 -0
  100. package/src/app/ui/editor-api/lib/editor/ui.js +149 -0
  101. package/src/app/ui/editor-api/lib/index.js +149 -0
  102. package/src/app/ui/editor-api/lib/runner/index.js +81 -0
  103. package/src/app/ui/editor-api/lib/util.js +51 -0
  104. package/src/app/ui/editor-client/README.md +10 -0
  105. package/src/app/ui/editor-client/constants.js +5 -0
  106. package/src/app/ui/editor-client/index.js +3 -0
  107. package/src/app/ui/editor-client/public/favicon.ico +0 -0
  108. package/src/app/ui/editor-client/public/red/images/bolt.png +0 -0
  109. package/src/app/ui/editor-client/public/red/images/debugger/continue-full.png +0 -0
  110. package/src/app/ui/editor-client/public/red/images/debugger/continue-outline.png +0 -0
  111. package/src/app/ui/editor-client/public/red/images/debugger/pause.png +0 -0
  112. package/src/app/ui/editor-client/public/red/images/debugger/restart.png +0 -0
  113. package/src/app/ui/editor-client/public/red/images/debugger/stepover.png +0 -0
  114. package/src/app/ui/editor-client/public/red/images/debugger/stop.png +0 -0
  115. package/src/app/ui/editor-client/public/red/images/deploy-flows-o.png +0 -0
  116. package/src/app/ui/editor-client/public/red/images/deploy-flows.png +0 -0
  117. package/src/app/ui/editor-client/public/red/images/deploy-full-o.png +0 -0
  118. package/src/app/ui/editor-client/public/red/images/deploy-full.png +0 -0
  119. package/src/app/ui/editor-client/public/red/images/deploy-nodes-o.png +0 -0
  120. package/src/app/ui/editor-client/public/red/images/deploy-nodes.png +0 -0
  121. package/src/app/ui/editor-client/public/red/images/deploy-reload.png +0 -0
  122. package/src/app/ui/editor-client/public/red/images/grip.png +0 -0
  123. package/src/app/ui/editor-client/public/red/images/icons/arrow-in.png +0 -0
  124. package/src/app/ui/editor-client/public/red/images/icons/bolt.png +0 -0
  125. package/src/app/ui/editor-client/public/red/images/icons/node-changed.png +0 -0
  126. package/src/app/ui/editor-client/public/red/images/icons/node-error.png +0 -0
  127. package/src/app/ui/editor-client/public/red/images/icons/node-play.png +0 -0
  128. package/src/app/ui/editor-client/public/red/images/kumologica-app.png +0 -0
  129. package/src/app/ui/editor-client/public/red/images/node-red-256.png +0 -0
  130. package/src/app/ui/editor-client/public/red/images/node-red-icon-black.svg +9 -0
  131. package/src/app/ui/editor-client/public/red/images/node-red-icon.svg +33 -0
  132. package/src/app/ui/editor-client/public/red/images/node-red.png +0 -0
  133. package/src/app/ui/editor-client/public/red/images/pw_maze_white.png +0 -0
  134. package/src/app/ui/editor-client/public/red/images/spin.svg +41 -0
  135. package/src/app/ui/editor-client/public/red/images/spinner.gif +0 -0
  136. package/src/app/ui/editor-client/public/red/images/subflow_tab.png +0 -0
  137. package/src/app/ui/editor-client/public/red/images/test-icon.png +0 -0
  138. package/src/app/ui/editor-client/public/red/images/typedInput/09.png +0 -0
  139. package/src/app/ui/editor-client/public/red/images/typedInput/az.png +0 -0
  140. package/src/app/ui/editor-client/public/red/images/typedInput/bin.png +0 -0
  141. package/src/app/ui/editor-client/public/red/images/typedInput/bool.png +0 -0
  142. package/src/app/ui/editor-client/public/red/images/typedInput/env.png +0 -0
  143. package/src/app/ui/editor-client/public/red/images/typedInput/expr.png +0 -0
  144. package/src/app/ui/editor-client/public/red/images/typedInput/json.png +0 -0
  145. package/src/app/ui/editor-client/public/red/images/typedInput/re.png +0 -0
  146. package/src/app/ui/editor-client/public/red/keymap.json +54 -0
  147. package/src/app/ui/editor-client/public/red/main-modals.js +14 -0
  148. package/src/app/ui/editor-client/public/red/main-modals.min.js +16 -0
  149. package/src/app/ui/editor-client/public/red/main.js +10 -0
  150. package/src/app/ui/editor-client/public/red/main.min.js +16 -0
  151. package/src/app/ui/editor-client/public/red/red.js +44903 -0
  152. package/src/app/ui/editor-client/public/red/red.min.js +16 -0
  153. package/src/app/ui/editor-client/public/red/style.min.css +24 -0
  154. package/src/app/ui/editor-client/public/vendor/ace/LICENSE +24 -0
  155. package/src/app/ui/editor-client/public/vendor/ace/ace.js +17 -0
  156. package/src/app/ui/editor-client/public/vendor/ace/ext-language_tools.js +8 -0
  157. package/src/app/ui/editor-client/public/vendor/ace/ext-searchbox.js +8 -0
  158. package/src/app/ui/editor-client/public/vendor/ace/mode-css.js +8 -0
  159. package/src/app/ui/editor-client/public/vendor/ace/mode-handlebars.js +8 -0
  160. package/src/app/ui/editor-client/public/vendor/ace/mode-html.js +8 -0
  161. package/src/app/ui/editor-client/public/vendor/ace/mode-javascript.js +8 -0
  162. package/src/app/ui/editor-client/public/vendor/ace/mode-json.js +8 -0
  163. package/src/app/ui/editor-client/public/vendor/ace/mode-jsonata.js +1 -0
  164. package/src/app/ui/editor-client/public/vendor/ace/mode-markdown.js +8 -0
  165. package/src/app/ui/editor-client/public/vendor/ace/mode-properties.js +8 -0
  166. package/src/app/ui/editor-client/public/vendor/ace/mode-python.js +8 -0
  167. package/src/app/ui/editor-client/public/vendor/ace/mode-sql.js +8 -0
  168. package/src/app/ui/editor-client/public/vendor/ace/mode-swift.js +8 -0
  169. package/src/app/ui/editor-client/public/vendor/ace/mode-text.js +8 -0
  170. package/src/app/ui/editor-client/public/vendor/ace/mode-xml.js +8 -0
  171. package/src/app/ui/editor-client/public/vendor/ace/mode-yaml.js +8 -0
  172. package/src/app/ui/editor-client/public/vendor/ace/snippets/css.js +8 -0
  173. package/src/app/ui/editor-client/public/vendor/ace/snippets/handlebars.js +8 -0
  174. package/src/app/ui/editor-client/public/vendor/ace/snippets/html.js +8 -0
  175. package/src/app/ui/editor-client/public/vendor/ace/snippets/javascript.js +8 -0
  176. package/src/app/ui/editor-client/public/vendor/ace/snippets/json.js +8 -0
  177. package/src/app/ui/editor-client/public/vendor/ace/snippets/jsonata.js +1 -0
  178. package/src/app/ui/editor-client/public/vendor/ace/snippets/markdown.js +8 -0
  179. package/src/app/ui/editor-client/public/vendor/ace/snippets/properties.js +8 -0
  180. package/src/app/ui/editor-client/public/vendor/ace/snippets/python.js +8 -0
  181. package/src/app/ui/editor-client/public/vendor/ace/snippets/sql.js +8 -0
  182. package/src/app/ui/editor-client/public/vendor/ace/snippets/swift.js +8 -0
  183. package/src/app/ui/editor-client/public/vendor/ace/snippets/text.js +8 -0
  184. package/src/app/ui/editor-client/public/vendor/ace/snippets/xml.js +8 -0
  185. package/src/app/ui/editor-client/public/vendor/ace/snippets/yaml.js +8 -0
  186. package/src/app/ui/editor-client/public/vendor/ace/theme-chrome.js +8 -0
  187. package/src/app/ui/editor-client/public/vendor/ace/theme-tomorrow.js +8 -0
  188. package/src/app/ui/editor-client/public/vendor/ace/worker-css.js +1 -0
  189. package/src/app/ui/editor-client/public/vendor/ace/worker-html.js +1 -0
  190. package/src/app/ui/editor-client/public/vendor/ace/worker-javascript.js +1 -0
  191. package/src/app/ui/editor-client/public/vendor/ace/worker-json.js +1 -0
  192. package/src/app/ui/editor-client/public/vendor/ace/worker-jsonata.js +2140 -0
  193. package/src/app/ui/editor-client/public/vendor/ace/worker-xml.js +1 -0
  194. package/src/app/ui/editor-client/public/vendor/beautifyjs/beautify.min.js +1 -0
  195. package/src/app/ui/editor-client/public/vendor/bootstrap/css/bootstrap.min.css +9 -0
  196. package/src/app/ui/editor-client/public/vendor/bootstrap/img/glyphicons-halflings-white.png +0 -0
  197. package/src/app/ui/editor-client/public/vendor/bootstrap/img/glyphicons-halflings.png +0 -0
  198. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/active-line.js +72 -0
  199. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/coffeescript-lint.js +47 -0
  200. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/javascript-hint.js +157 -0
  201. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/javascript-lint.js +63 -0
  202. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/jshint.js +29591 -0
  203. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/lint.css +73 -0
  204. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/lint.js +252 -0
  205. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/show-hint.css +36 -0
  206. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/show-hint.js +460 -0
  207. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/sql-hint.js +304 -0
  208. package/src/app/ui/editor-client/public/vendor/code-mirror/lib/codemirror.css +350 -0
  209. package/src/app/ui/editor-client/public/vendor/code-mirror/lib/codemirror.js +9800 -0
  210. package/src/app/ui/editor-client/public/vendor/code-mirror/mode/javascript.js +927 -0
  211. package/src/app/ui/editor-client/public/vendor/code-mirror/mode/sql.js +494 -0
  212. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/base16-dark.css +38 -0
  213. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/monokai.css +42 -0
  214. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/solarized.css +168 -0
  215. package/src/app/ui/editor-client/public/vendor/d3-context-menu/d3-context-menu.css +43 -0
  216. package/src/app/ui/editor-client/public/vendor/d3-context-menu/d3-context-menu.js +87 -0
  217. package/src/app/ui/editor-client/public/vendor/easy-json-schema/index.js +88 -0
  218. package/src/app/ui/editor-client/public/vendor/font-awesome/css/font-awesome.min.css +4 -0
  219. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
  220. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  221. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.svg +2671 -0
  222. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  223. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  224. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  225. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.eot +0 -0
  226. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.svg +2105 -0
  227. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.ttf +0 -0
  228. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.woff +0 -0
  229. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.woff2 +0 -0
  230. package/src/app/ui/editor-client/public/vendor/icofont/icofont.min.css +7 -0
  231. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/animated-overlay.gif +0 -0
  232. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  233. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  234. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  235. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  236. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  237. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  238. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  239. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  240. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  241. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  242. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  243. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  244. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  245. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css +5 -0
  246. package/src/app/ui/editor-client/public/vendor/jsonata/jsonata.min.js +183 -0
  247. package/src/app/ui/editor-client/public/vendor/misc/toggleswitch.css +181 -0
  248. package/src/app/ui/editor-client/public/vendor/misc/toggleswitch.js +48 -0
  249. package/src/app/ui/editor-client/public/vendor/simplemde/simplemde.min.css +7 -0
  250. package/src/app/ui/editor-client/public/vendor/simplemde/simplemde.min.js +15 -0
  251. package/src/app/ui/editor-client/public/vendor/vendor.css +0 -0
  252. package/src/app/ui/editor-client/public/vendor/vendor.js +125 -0
  253. package/src/app/ui/editor-client/public/vendor/xterm/lib/xterm.js +2 -0
  254. package/src/app/ui/editor-client/src/ace/README.md +50 -0
  255. package/src/app/ui/editor-client/src/ace/mode/nrjavascript.js +35 -0
  256. package/src/app/ui/editor-client/src/ace/mode/nrjavascript_worker.js +189 -0
  257. package/src/app/ui/editor-client/src/favicon.ico +0 -0
  258. package/src/app/ui/editor-client/src/images/bolt.png +0 -0
  259. package/src/app/ui/editor-client/src/images/debugger/continue-full.png +0 -0
  260. package/src/app/ui/editor-client/src/images/debugger/continue-outline.png +0 -0
  261. package/src/app/ui/editor-client/src/images/debugger/pause.png +0 -0
  262. package/src/app/ui/editor-client/src/images/debugger/restart.png +0 -0
  263. package/src/app/ui/editor-client/src/images/debugger/stepover.png +0 -0
  264. package/src/app/ui/editor-client/src/images/debugger/stop.png +0 -0
  265. package/src/app/ui/editor-client/src/images/deploy-flows-o.png +0 -0
  266. package/src/app/ui/editor-client/src/images/deploy-flows.png +0 -0
  267. package/src/app/ui/editor-client/src/images/deploy-full-o.png +0 -0
  268. package/src/app/ui/editor-client/src/images/deploy-full.png +0 -0
  269. package/src/app/ui/editor-client/src/images/deploy-nodes-o.png +0 -0
  270. package/src/app/ui/editor-client/src/images/deploy-nodes.png +0 -0
  271. package/src/app/ui/editor-client/src/images/deploy-reload.png +0 -0
  272. package/src/app/ui/editor-client/src/images/grip.png +0 -0
  273. package/src/app/ui/editor-client/src/images/icons/arrow-in.png +0 -0
  274. package/src/app/ui/editor-client/src/images/icons/bolt.png +0 -0
  275. package/src/app/ui/editor-client/src/images/icons/node-changed.png +0 -0
  276. package/src/app/ui/editor-client/src/images/icons/node-error.png +0 -0
  277. package/src/app/ui/editor-client/src/images/icons/node-play.png +0 -0
  278. package/src/app/ui/editor-client/src/images/kumologica-app.png +0 -0
  279. package/src/app/ui/editor-client/src/images/node-red-256.png +0 -0
  280. package/src/app/ui/editor-client/src/images/node-red-icon-black.svg +9 -0
  281. package/src/app/ui/editor-client/src/images/node-red-icon.svg +33 -0
  282. package/src/app/ui/editor-client/src/images/node-red.png +0 -0
  283. package/src/app/ui/editor-client/src/images/pw_maze_white.png +0 -0
  284. package/src/app/ui/editor-client/src/images/spin.svg +41 -0
  285. package/src/app/ui/editor-client/src/images/spinner.gif +0 -0
  286. package/src/app/ui/editor-client/src/images/subflow_tab.png +0 -0
  287. package/src/app/ui/editor-client/src/images/test-icon.png +0 -0
  288. package/src/app/ui/editor-client/src/images/typedInput/09.png +0 -0
  289. package/src/app/ui/editor-client/src/images/typedInput/az.png +0 -0
  290. package/src/app/ui/editor-client/src/images/typedInput/bin.png +0 -0
  291. package/src/app/ui/editor-client/src/images/typedInput/bool.png +0 -0
  292. package/src/app/ui/editor-client/src/images/typedInput/env.png +0 -0
  293. package/src/app/ui/editor-client/src/images/typedInput/expr.png +0 -0
  294. package/src/app/ui/editor-client/src/images/typedInput/json.png +0 -0
  295. package/src/app/ui/editor-client/src/images/typedInput/re.png +0 -0
  296. package/src/app/ui/editor-client/src/js/comms.js +174 -0
  297. package/src/app/ui/editor-client/src/js/events.js +39 -0
  298. package/src/app/ui/editor-client/src/js/font-awesome.js +818 -0
  299. package/src/app/ui/editor-client/src/js/history.js +337 -0
  300. package/src/app/ui/editor-client/src/js/i18n.js +81 -0
  301. package/src/app/ui/editor-client/src/js/jquery-addons.js +21 -0
  302. package/src/app/ui/editor-client/src/js/keymap.json +54 -0
  303. package/src/app/ui/editor-client/src/js/main-modals.js +14 -0
  304. package/src/app/ui/editor-client/src/js/main.js +10 -0
  305. package/src/app/ui/editor-client/src/js/modals/modal-home.js +162 -0
  306. package/src/app/ui/editor-client/src/js/modals/modal-new-project.js +86 -0
  307. package/src/app/ui/editor-client/src/js/modals/modal-node-library.js +255 -0
  308. package/src/app/ui/editor-client/src/js/modals/modal-welcome.js +102 -0
  309. package/src/app/ui/editor-client/src/js/nodes.js +1736 -0
  310. package/src/app/ui/editor-client/src/js/red.js +704 -0
  311. package/src/app/ui/editor-client/src/js/settings.js +275 -0
  312. package/src/app/ui/editor-client/src/js/text/bidi.js +116 -0
  313. package/src/app/ui/editor-client/src/js/text/format.js +1316 -0
  314. package/src/app/ui/editor-client/src/js/ui/actions.js +39 -0
  315. package/src/app/ui/editor-client/src/js/ui/clipboard.js +510 -0
  316. package/src/app/ui/editor-client/src/js/ui/common/checkboxSet.js +117 -0
  317. package/src/app/ui/editor-client/src/js/ui/common/editableList.js +322 -0
  318. package/src/app/ui/editor-client/src/js/ui/common/menu.js +277 -0
  319. package/src/app/ui/editor-client/src/js/ui/common/panels.js +104 -0
  320. package/src/app/ui/editor-client/src/js/ui/common/popover.js +268 -0
  321. package/src/app/ui/editor-client/src/js/ui/common/searchBox.js +98 -0
  322. package/src/app/ui/editor-client/src/js/ui/common/stack.js +184 -0
  323. package/src/app/ui/editor-client/src/js/ui/common/tabs.js +730 -0
  324. package/src/app/ui/editor-client/src/js/ui/common/treeList.js +170 -0
  325. package/src/app/ui/editor-client/src/js/ui/common/typedInput.js +819 -0
  326. package/src/app/ui/editor-client/src/js/ui/common/typedInputLong.js +829 -0
  327. package/src/app/ui/editor-client/src/js/ui/deploy.js +422 -0
  328. package/src/app/ui/editor-client/src/js/ui/diff.js +2225 -0
  329. package/src/app/ui/editor-client/src/js/ui/editor.js +3020 -0
  330. package/src/app/ui/editor-client/src/js/ui/editors/buffer.js +195 -0
  331. package/src/app/ui/editor-client/src/js/ui/editors/expression.js +627 -0
  332. package/src/app/ui/editor-client/src/js/ui/editors/js.js +89 -0
  333. package/src/app/ui/editor-client/src/js/ui/editors/json.js +107 -0
  334. package/src/app/ui/editor-client/src/js/ui/editors/markdown.js +267 -0
  335. package/src/app/ui/editor-client/src/js/ui/editors/string.js +75 -0
  336. package/src/app/ui/editor-client/src/js/ui/event-log.js +107 -0
  337. package/src/app/ui/editor-client/src/js/ui/header.js +372 -0
  338. package/src/app/ui/editor-client/src/js/ui/keyboard.js +565 -0
  339. package/src/app/ui/editor-client/src/js/ui/library.js +570 -0
  340. package/src/app/ui/editor-client/src/js/ui/logviewer.js +116 -0
  341. package/src/app/ui/editor-client/src/js/ui/notifications.js +282 -0
  342. package/src/app/ui/editor-client/src/js/ui/palette-editor.js +1061 -0
  343. package/src/app/ui/editor-client/src/js/ui/palette.js +788 -0
  344. package/src/app/ui/editor-client/src/js/ui/project-info.js +232 -0
  345. package/src/app/ui/editor-client/src/js/ui/projects/projectSettings.js +1651 -0
  346. package/src/app/ui/editor-client/src/js/ui/projects/projectUserSettings.js +404 -0
  347. package/src/app/ui/editor-client/src/js/ui/projects/projects.js +2395 -0
  348. package/src/app/ui/editor-client/src/js/ui/projects/tab-versionControl.js +1383 -0
  349. package/src/app/ui/editor-client/src/js/ui/search.js +366 -0
  350. package/src/app/ui/editor-client/src/js/ui/sidebar.js +409 -0
  351. package/src/app/ui/editor-client/src/js/ui/state.js +14 -0
  352. package/src/app/ui/editor-client/src/js/ui/subflow.js +748 -0
  353. package/src/app/ui/editor-client/src/js/ui/tab-awsDeploy.js +1427 -0
  354. package/src/app/ui/editor-client/src/js/ui/tab-azure.js +852 -0
  355. package/src/app/ui/editor-client/src/js/ui/tab-config.js +452 -0
  356. package/src/app/ui/editor-client/src/js/ui/tab-context.js +406 -0
  357. package/src/app/ui/editor-client/src/js/ui/tab-info.js +661 -0
  358. package/src/app/ui/editor-client/src/js/ui/tab-kumohub.js +800 -0
  359. package/src/app/ui/editor-client/src/js/ui/tab-nodeInfo.js +60 -0
  360. package/src/app/ui/editor-client/src/js/ui/tab-test.js +915 -0
  361. package/src/app/ui/editor-client/src/js/ui/terminal.js +240 -0
  362. package/src/app/ui/editor-client/src/js/ui/touch/radialMenu.js +170 -0
  363. package/src/app/ui/editor-client/src/js/ui/tray.js +411 -0
  364. package/src/app/ui/editor-client/src/js/ui/typeSearch.js +411 -0
  365. package/src/app/ui/editor-client/src/js/ui/ui-settings.js +422 -0
  366. package/src/app/ui/editor-client/src/js/ui/update-panel.js +84 -0
  367. package/src/app/ui/editor-client/src/js/ui/userSettings.js +673 -0
  368. package/src/app/ui/editor-client/src/js/ui/utils.js +1287 -0
  369. package/src/app/ui/editor-client/src/js/ui/view-navigator.js +169 -0
  370. package/src/app/ui/editor-client/src/js/ui/view-tools.js +123 -0
  371. package/src/app/ui/editor-client/src/js/ui/view.js +5333 -0
  372. package/src/app/ui/editor-client/src/js/ui/workspaces.js +498 -0
  373. package/src/app/ui/editor-client/src/js/user.js +282 -0
  374. package/src/app/ui/editor-client/src/js/validators.js +54 -0
  375. package/src/app/ui/editor-client/src/kumologica-app.png +0 -0
  376. package/src/app/ui/editor-client/src/sass/ace.scss +29 -0
  377. package/src/app/ui/editor-client/src/sass/bootstrap.scss +21 -0
  378. package/src/app/ui/editor-client/src/sass/colors.scss +76 -0
  379. package/src/app/ui/editor-client/src/sass/debug.scss +383 -0
  380. package/src/app/ui/editor-client/src/sass/diff.scss +695 -0
  381. package/src/app/ui/editor-client/src/sass/dragdrop.scss +37 -0
  382. package/src/app/ui/editor-client/src/sass/dropdownMenu.scss +93 -0
  383. package/src/app/ui/editor-client/src/sass/editor.scss +683 -0
  384. package/src/app/ui/editor-client/src/sass/flow.scss +330 -0
  385. package/src/app/ui/editor-client/src/sass/forms.scss +1093 -0
  386. package/src/app/ui/editor-client/src/sass/header.scss +502 -0
  387. package/src/app/ui/editor-client/src/sass/jquery.scss +152 -0
  388. package/src/app/ui/editor-client/src/sass/keyboard.scss +136 -0
  389. package/src/app/ui/editor-client/src/sass/library.scss +54 -0
  390. package/src/app/ui/editor-client/src/sass/mixins.scss +283 -0
  391. package/src/app/ui/editor-client/src/sass/modals/modalHome.scss +138 -0
  392. package/src/app/ui/editor-client/src/sass/modals/modalNewProject.scss +96 -0
  393. package/src/app/ui/editor-client/src/sass/modals/modalNodeLibrary.scss +131 -0
  394. package/src/app/ui/editor-client/src/sass/modals/modalWelcome.scss +102 -0
  395. package/src/app/ui/editor-client/src/sass/notifications.scss +118 -0
  396. package/src/app/ui/editor-client/src/sass/palette-editor.scss +275 -0
  397. package/src/app/ui/editor-client/src/sass/palette.scss +279 -0
  398. package/src/app/ui/editor-client/src/sass/panels.scss +61 -0
  399. package/src/app/ui/editor-client/src/sass/popover.scss +166 -0
  400. package/src/app/ui/editor-client/src/sass/project-info.scss +74 -0
  401. package/src/app/ui/editor-client/src/sass/projects.scss +875 -0
  402. package/src/app/ui/editor-client/src/sass/search.scss +201 -0
  403. package/src/app/ui/editor-client/src/sass/sidebar.scss +201 -0
  404. package/src/app/ui/editor-client/src/sass/style.scss +170 -0
  405. package/src/app/ui/editor-client/src/sass/tab-azure.scss +68 -0
  406. package/src/app/ui/editor-client/src/sass/tab-cloud.scss +67 -0
  407. package/src/app/ui/editor-client/src/sass/tab-config.scss +100 -0
  408. package/src/app/ui/editor-client/src/sass/tab-context.scss +54 -0
  409. package/src/app/ui/editor-client/src/sass/tab-info.scss +307 -0
  410. package/src/app/ui/editor-client/src/sass/tab-kumohub.scss +68 -0
  411. package/src/app/ui/editor-client/src/sass/tab-test.scss +257 -0
  412. package/src/app/ui/editor-client/src/sass/tabs.scss +395 -0
  413. package/src/app/ui/editor-client/src/sass/terminal.scss +246 -0
  414. package/src/app/ui/editor-client/src/sass/ui/common/checkboxSet.scss +29 -0
  415. package/src/app/ui/editor-client/src/sass/ui/common/editableList.scss +81 -0
  416. package/src/app/ui/editor-client/src/sass/ui/common/nodeList.scss +65 -0
  417. package/src/app/ui/editor-client/src/sass/ui/common/searchBox.scss +77 -0
  418. package/src/app/ui/editor-client/src/sass/ui/common/stack.scss +26 -0
  419. package/src/app/ui/editor-client/src/sass/ui/common/treeList.scss +108 -0
  420. package/src/app/ui/editor-client/src/sass/ui/common/typedInput.scss +181 -0
  421. package/src/app/ui/editor-client/src/sass/ui/common/typedInputLong.scss +183 -0
  422. package/src/app/ui/editor-client/src/sass/ui-settings.scss +119 -0
  423. package/src/app/ui/editor-client/src/sass/update-panel.scss +18 -0
  424. package/src/app/ui/editor-client/src/sass/userSettings.scss +93 -0
  425. package/src/app/ui/editor-client/src/sass/widgetStyle.scss +23 -0
  426. package/src/app/ui/editor-client/src/sass/workspace.scss +123 -0
  427. package/src/app/ui/editor-client/src/sass/workspaceToolbar.scss +85 -0
  428. package/src/app/ui/editor-client/src/vendor/ace/LICENSE +24 -0
  429. package/src/app/ui/editor-client/src/vendor/ace/ace.js +17 -0
  430. package/src/app/ui/editor-client/src/vendor/ace/ext-language_tools.js +8 -0
  431. package/src/app/ui/editor-client/src/vendor/ace/ext-searchbox.js +8 -0
  432. package/src/app/ui/editor-client/src/vendor/ace/mode-css.js +8 -0
  433. package/src/app/ui/editor-client/src/vendor/ace/mode-handlebars.js +8 -0
  434. package/src/app/ui/editor-client/src/vendor/ace/mode-html.js +8 -0
  435. package/src/app/ui/editor-client/src/vendor/ace/mode-javascript.js +8 -0
  436. package/src/app/ui/editor-client/src/vendor/ace/mode-json.js +8 -0
  437. package/src/app/ui/editor-client/src/vendor/ace/mode-markdown.js +8 -0
  438. package/src/app/ui/editor-client/src/vendor/ace/mode-properties.js +8 -0
  439. package/src/app/ui/editor-client/src/vendor/ace/mode-python.js +8 -0
  440. package/src/app/ui/editor-client/src/vendor/ace/mode-sql.js +8 -0
  441. package/src/app/ui/editor-client/src/vendor/ace/mode-swift.js +8 -0
  442. package/src/app/ui/editor-client/src/vendor/ace/mode-text.js +8 -0
  443. package/src/app/ui/editor-client/src/vendor/ace/mode-xml.js +8 -0
  444. package/src/app/ui/editor-client/src/vendor/ace/mode-yaml.js +8 -0
  445. package/src/app/ui/editor-client/src/vendor/ace/snippets/css.js +8 -0
  446. package/src/app/ui/editor-client/src/vendor/ace/snippets/handlebars.js +8 -0
  447. package/src/app/ui/editor-client/src/vendor/ace/snippets/html.js +8 -0
  448. package/src/app/ui/editor-client/src/vendor/ace/snippets/javascript.js +8 -0
  449. package/src/app/ui/editor-client/src/vendor/ace/snippets/json.js +8 -0
  450. package/src/app/ui/editor-client/src/vendor/ace/snippets/markdown.js +8 -0
  451. package/src/app/ui/editor-client/src/vendor/ace/snippets/properties.js +8 -0
  452. package/src/app/ui/editor-client/src/vendor/ace/snippets/python.js +8 -0
  453. package/src/app/ui/editor-client/src/vendor/ace/snippets/sql.js +8 -0
  454. package/src/app/ui/editor-client/src/vendor/ace/snippets/swift.js +8 -0
  455. package/src/app/ui/editor-client/src/vendor/ace/snippets/text.js +8 -0
  456. package/src/app/ui/editor-client/src/vendor/ace/snippets/xml.js +8 -0
  457. package/src/app/ui/editor-client/src/vendor/ace/snippets/yaml.js +8 -0
  458. package/src/app/ui/editor-client/src/vendor/ace/theme-chrome.js +8 -0
  459. package/src/app/ui/editor-client/src/vendor/ace/theme-tomorrow.js +8 -0
  460. package/src/app/ui/editor-client/src/vendor/ace/worker-css.js +1 -0
  461. package/src/app/ui/editor-client/src/vendor/ace/worker-html.js +1 -0
  462. package/src/app/ui/editor-client/src/vendor/ace/worker-javascript.js +1 -0
  463. package/src/app/ui/editor-client/src/vendor/ace/worker-json.js +1 -0
  464. package/src/app/ui/editor-client/src/vendor/ace/worker-xml.js +1 -0
  465. package/src/app/ui/editor-client/src/vendor/beautifyjs/beautify.min.js +1 -0
  466. package/src/app/ui/editor-client/src/vendor/bootstrap/css/bootstrap.css +5406 -0
  467. package/src/app/ui/editor-client/src/vendor/bootstrap/css/bootstrap.min.css +9 -0
  468. package/src/app/ui/editor-client/src/vendor/bootstrap/img/glyphicons-halflings-white.png +0 -0
  469. package/src/app/ui/editor-client/src/vendor/bootstrap/img/glyphicons-halflings.png +0 -0
  470. package/src/app/ui/editor-client/src/vendor/bootstrap/js/bootstrap.min.js +6 -0
  471. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/active-line.js +72 -0
  472. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/coffeescript-lint.js +47 -0
  473. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/javascript-hint.js +157 -0
  474. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/javascript-lint.js +63 -0
  475. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/jshint.js +29591 -0
  476. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/lint.css +73 -0
  477. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/lint.js +252 -0
  478. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/show-hint.css +36 -0
  479. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/show-hint.js +460 -0
  480. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/sql-hint.js +304 -0
  481. package/src/app/ui/editor-client/src/vendor/code-mirror/lib/codemirror.css +350 -0
  482. package/src/app/ui/editor-client/src/vendor/code-mirror/lib/codemirror.js +9800 -0
  483. package/src/app/ui/editor-client/src/vendor/code-mirror/mode/javascript.js +927 -0
  484. package/src/app/ui/editor-client/src/vendor/code-mirror/mode/sql.js +494 -0
  485. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/base16-dark.css +38 -0
  486. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/monokai.css +42 -0
  487. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/solarized.css +168 -0
  488. package/src/app/ui/editor-client/src/vendor/d3/d3.v3.min.js +4 -0
  489. package/src/app/ui/editor-client/src/vendor/d3/d3.v4.min.js +2 -0
  490. package/src/app/ui/editor-client/src/vendor/d3-context-menu/d3-context-menu.css +43 -0
  491. package/src/app/ui/editor-client/src/vendor/d3-context-menu/d3-context-menu.js +87 -0
  492. package/src/app/ui/editor-client/src/vendor/easy-json-schema/index.js +88 -0
  493. package/src/app/ui/editor-client/src/vendor/font-awesome/css/font-awesome.min.css +4 -0
  494. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
  495. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  496. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.svg +2671 -0
  497. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  498. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  499. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  500. package/src/app/ui/editor-client/src/vendor/i18next/i18next.min.js +5 -0
  501. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.eot +0 -0
  502. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.svg +2105 -0
  503. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.ttf +0 -0
  504. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.woff +0 -0
  505. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.woff2 +0 -0
  506. package/src/app/ui/editor-client/src/vendor/icofont/icofont.min.css +7 -0
  507. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/animated-overlay.gif +0 -0
  508. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  509. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  510. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  511. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  512. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  513. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  514. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  515. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  516. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  517. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  518. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  519. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  520. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  521. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css +5 -0
  522. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery-1.11.3.min.js +5 -0
  523. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js +7 -0
  524. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery.ui.touch-punch.min.js +11 -0
  525. package/src/app/ui/editor-client/src/vendor/jsonata/formatter.js +183 -0
  526. package/src/app/ui/editor-client/src/vendor/jsonata/mode-jsonata.js +134 -0
  527. package/src/app/ui/editor-client/src/vendor/jsonata/snippets-jsonata.js +11 -0
  528. package/src/app/ui/editor-client/src/vendor/jsonata/worker-jsonata.js +2140 -0
  529. package/src/app/ui/editor-client/src/vendor/marked/marked.min.js +6 -0
  530. package/src/app/ui/editor-client/src/vendor/misc/toggleswitch.css +181 -0
  531. package/src/app/ui/editor-client/src/vendor/misc/toggleswitch.js +48 -0
  532. package/src/app/ui/editor-client/templates/index.mst +314 -0
  533. package/src/app/ui/editor-client/templates/modals/modalHome.mst +107 -0
  534. package/src/app/ui/editor-client/templates/modals/modalNewProject.mst +104 -0
  535. package/src/app/ui/editor-client/templates/modals/modalNodeLibrary.mst +72 -0
  536. package/src/app/ui/editor-client/templates/modals/modalWelcome.mst +111 -0
  537. package/src/assets/eula.txt +170 -0
  538. package/src/assets/icon.icns +0 -0
  539. package/src/assets/kumologica-app.png +0 -0
  540. package/src/assets/license_en.txt +170 -0
@@ -0,0 +1,2140 @@
1
+ // jsonata-es5.min.js is prepended to this file as part of the Grunt build
2
+
3
+ ;(function(window) {
4
+ if (typeof window.window != "undefined" && window.document)
5
+ return;
6
+ if (window.require && window.define)
7
+ return;
8
+
9
+ if (!window.console) {
10
+ window.console = function() {
11
+ var msgs = Array.prototype.slice.call(arguments, 0);
12
+ postMessage({type: "log", data: msgs});
13
+ };
14
+ window.console.error =
15
+ window.console.warn =
16
+ window.console.log =
17
+ window.console.trace = window.console;
18
+ }
19
+ window.window = window;
20
+ window.ace = window;
21
+ window.onerror = function(message, file, line, col, err) {
22
+ postMessage({type: "error", data: {
23
+ message: message,
24
+ data: err.data,
25
+ file: file,
26
+ line: line,
27
+ col: col,
28
+ stack: err.stack
29
+ }});
30
+ };
31
+
32
+ window.normalizeModule = function(parentId, moduleName) {
33
+ // normalize plugin requires
34
+ if (moduleName.indexOf("!") !== -1) {
35
+ var chunks = moduleName.split("!");
36
+ return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1]);
37
+ }
38
+ // normalize relative requires
39
+ if (moduleName.charAt(0) == ".") {
40
+ var base = parentId.split("/").slice(0, -1).join("/");
41
+ moduleName = (base ? base + "/" : "") + moduleName;
42
+
43
+ while (moduleName.indexOf(".") !== -1 && previous != moduleName) {
44
+ var previous = moduleName;
45
+ moduleName = moduleName.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
46
+ }
47
+ }
48
+
49
+ return moduleName;
50
+ };
51
+
52
+ window.require = function require(parentId, id) {
53
+ if (!id) {
54
+ id = parentId;
55
+ parentId = null;
56
+ }
57
+ if (!id.charAt)
58
+ throw new Error("worker.js require() accepts only (parentId, id) as arguments");
59
+
60
+ id = window.normalizeModule(parentId, id);
61
+
62
+ var module = window.require.modules[id];
63
+ if (module) {
64
+ if (!module.initialized) {
65
+ module.initialized = true;
66
+ module.exports = module.factory().exports;
67
+ }
68
+ return module.exports;
69
+ }
70
+
71
+ if (!window.require.tlns)
72
+ return console.log("unable to load " + id);
73
+
74
+ var path = resolveModuleId(id, window.require.tlns);
75
+ if (path.slice(-3) != ".js") path += ".js";
76
+
77
+ window.require.id = id;
78
+ window.require.modules[id] = {}; // prevent infinite loop on broken modules
79
+ importScripts(path);
80
+ return window.require(parentId, id);
81
+ };
82
+ function resolveModuleId(id, paths) {
83
+ var testPath = id, tail = "";
84
+ while (testPath) {
85
+ var alias = paths[testPath];
86
+ if (typeof alias == "string") {
87
+ return alias + tail;
88
+ } else if (alias) {
89
+ return alias.location.replace(/\/*$/, "/") + (tail || alias.main || alias.name);
90
+ } else if (alias === false) {
91
+ return "";
92
+ }
93
+ var i = testPath.lastIndexOf("/");
94
+ if (i === -1) break;
95
+ tail = testPath.substr(i) + tail;
96
+ testPath = testPath.slice(0, i);
97
+ }
98
+ return id;
99
+ }
100
+ window.require.modules = {};
101
+ window.require.tlns = {};
102
+
103
+ window.define = function(id, deps, factory) {
104
+ if (arguments.length == 2) {
105
+ factory = deps;
106
+ if (typeof id != "string") {
107
+ deps = id;
108
+ id = window.require.id;
109
+ }
110
+ } else if (arguments.length == 1) {
111
+ factory = id;
112
+ deps = [];
113
+ id = window.require.id;
114
+ }
115
+
116
+ if (typeof factory != "function") {
117
+ window.require.modules[id] = {
118
+ exports: factory,
119
+ initialized: true
120
+ };
121
+ return;
122
+ }
123
+
124
+ if (!deps.length)
125
+ // If there is no dependencies, we inject "require", "exports" and
126
+ // "module" as dependencies, to provide CommonJS compatibility.
127
+ deps = ["require", "exports", "module"];
128
+
129
+ var req = function(childId) {
130
+ return window.require(id, childId);
131
+ };
132
+
133
+ window.require.modules[id] = {
134
+ exports: {},
135
+ factory: function() {
136
+ var module = this;
137
+ var returnExports = factory.apply(this, deps.map(function(dep) {
138
+ switch (dep) {
139
+ // Because "require", "exports" and "module" aren't actual
140
+ // dependencies, we must handle them seperately.
141
+ case "require": return req;
142
+ case "exports": return module.exports;
143
+ case "module": return module;
144
+ // But for all other dependencies, we can just go ahead and
145
+ // require them.
146
+ default: return req(dep);
147
+ }
148
+ }));
149
+ if (returnExports)
150
+ module.exports = returnExports;
151
+ return module;
152
+ }
153
+ };
154
+ };
155
+ window.define.amd = {};
156
+ require.tlns = {};
157
+ window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
158
+ for (var i in topLevelNamespaces)
159
+ require.tlns[i] = topLevelNamespaces[i];
160
+ };
161
+
162
+ window.initSender = function initSender() {
163
+
164
+ var EventEmitter = window.require("ace/lib/event_emitter").EventEmitter;
165
+ var oop = window.require("ace/lib/oop");
166
+
167
+ var Sender = function() {};
168
+
169
+ (function() {
170
+
171
+ oop.implement(this, EventEmitter);
172
+
173
+ this.callback = function(data, callbackId) {
174
+ postMessage({
175
+ type: "call",
176
+ id: callbackId,
177
+ data: data
178
+ });
179
+ };
180
+
181
+ this.emit = function(name, data) {
182
+ postMessage({
183
+ type: "event",
184
+ name: name,
185
+ data: data
186
+ });
187
+ };
188
+
189
+ }).call(Sender.prototype);
190
+
191
+ return new Sender();
192
+ };
193
+
194
+ var main = window.main = null;
195
+ var sender = window.sender = null;
196
+
197
+ window.onmessage = function(e) {
198
+ var msg = e.data;
199
+ if (msg.event && sender) {
200
+ sender._signal(msg.event, msg.data);
201
+ }
202
+ else if (msg.command) {
203
+ if (main[msg.command])
204
+ main[msg.command].apply(main, msg.args);
205
+ else if (window[msg.command])
206
+ window[msg.command].apply(window, msg.args);
207
+ else
208
+ throw new Error("Unknown command:" + msg.command);
209
+ }
210
+ else if (msg.init) {
211
+ window.initBaseUrls(msg.tlns);
212
+ require("ace/lib/es5-shim");
213
+ sender = window.sender = window.initSender();
214
+ var clazz = require(msg.module)[msg.classname];
215
+ main = window.main = new clazz(sender);
216
+ }
217
+ };
218
+ })(this);
219
+
220
+ define("ace/lib/oop",["require","exports","module"], function(require, exports, module) {
221
+ "use strict";
222
+
223
+ exports.inherits = function(ctor, superCtor) {
224
+ ctor.super_ = superCtor;
225
+ ctor.prototype = Object.create(superCtor.prototype, {
226
+ constructor: {
227
+ value: ctor,
228
+ enumerable: false,
229
+ writable: true,
230
+ configurable: true
231
+ }
232
+ });
233
+ };
234
+
235
+ exports.mixin = function(obj, mixin) {
236
+ for (var key in mixin) {
237
+ obj[key] = mixin[key];
238
+ }
239
+ return obj;
240
+ };
241
+
242
+ exports.implement = function(proto, mixin) {
243
+ exports.mixin(proto, mixin);
244
+ };
245
+
246
+ });
247
+
248
+ define("ace/range",["require","exports","module"], function(require, exports, module) {
249
+ "use strict";
250
+ var comparePoints = function(p1, p2) {
251
+ return p1.row - p2.row || p1.column - p2.column;
252
+ };
253
+ var Range = function(startRow, startColumn, endRow, endColumn) {
254
+ this.start = {
255
+ row: startRow,
256
+ column: startColumn
257
+ };
258
+
259
+ this.end = {
260
+ row: endRow,
261
+ column: endColumn
262
+ };
263
+ };
264
+
265
+ (function() {
266
+ this.isEqual = function(range) {
267
+ return this.start.row === range.start.row &&
268
+ this.end.row === range.end.row &&
269
+ this.start.column === range.start.column &&
270
+ this.end.column === range.end.column;
271
+ };
272
+ this.toString = function() {
273
+ return ("Range: [" + this.start.row + "/" + this.start.column +
274
+ "] -> [" + this.end.row + "/" + this.end.column + "]");
275
+ };
276
+
277
+ this.contains = function(row, column) {
278
+ return this.compare(row, column) == 0;
279
+ };
280
+ this.compareRange = function(range) {
281
+ var cmp,
282
+ end = range.end,
283
+ start = range.start;
284
+
285
+ cmp = this.compare(end.row, end.column);
286
+ if (cmp == 1) {
287
+ cmp = this.compare(start.row, start.column);
288
+ if (cmp == 1) {
289
+ return 2;
290
+ } else if (cmp == 0) {
291
+ return 1;
292
+ } else {
293
+ return 0;
294
+ }
295
+ } else if (cmp == -1) {
296
+ return -2;
297
+ } else {
298
+ cmp = this.compare(start.row, start.column);
299
+ if (cmp == -1) {
300
+ return -1;
301
+ } else if (cmp == 1) {
302
+ return 42;
303
+ } else {
304
+ return 0;
305
+ }
306
+ }
307
+ };
308
+ this.comparePoint = function(p) {
309
+ return this.compare(p.row, p.column);
310
+ };
311
+ this.containsRange = function(range) {
312
+ return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
313
+ };
314
+ this.intersects = function(range) {
315
+ var cmp = this.compareRange(range);
316
+ return (cmp == -1 || cmp == 0 || cmp == 1);
317
+ };
318
+ this.isEnd = function(row, column) {
319
+ return this.end.row == row && this.end.column == column;
320
+ };
321
+ this.isStart = function(row, column) {
322
+ return this.start.row == row && this.start.column == column;
323
+ };
324
+ this.setStart = function(row, column) {
325
+ if (typeof row == "object") {
326
+ this.start.column = row.column;
327
+ this.start.row = row.row;
328
+ } else {
329
+ this.start.row = row;
330
+ this.start.column = column;
331
+ }
332
+ };
333
+ this.setEnd = function(row, column) {
334
+ if (typeof row == "object") {
335
+ this.end.column = row.column;
336
+ this.end.row = row.row;
337
+ } else {
338
+ this.end.row = row;
339
+ this.end.column = column;
340
+ }
341
+ };
342
+ this.inside = function(row, column) {
343
+ if (this.compare(row, column) == 0) {
344
+ if (this.isEnd(row, column) || this.isStart(row, column)) {
345
+ return false;
346
+ } else {
347
+ return true;
348
+ }
349
+ }
350
+ return false;
351
+ };
352
+ this.insideStart = function(row, column) {
353
+ if (this.compare(row, column) == 0) {
354
+ if (this.isEnd(row, column)) {
355
+ return false;
356
+ } else {
357
+ return true;
358
+ }
359
+ }
360
+ return false;
361
+ };
362
+ this.insideEnd = function(row, column) {
363
+ if (this.compare(row, column) == 0) {
364
+ if (this.isStart(row, column)) {
365
+ return false;
366
+ } else {
367
+ return true;
368
+ }
369
+ }
370
+ return false;
371
+ };
372
+ this.compare = function(row, column) {
373
+ if (!this.isMultiLine()) {
374
+ if (row === this.start.row) {
375
+ return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
376
+ }
377
+ }
378
+
379
+ if (row < this.start.row)
380
+ return -1;
381
+
382
+ if (row > this.end.row)
383
+ return 1;
384
+
385
+ if (this.start.row === row)
386
+ return column >= this.start.column ? 0 : -1;
387
+
388
+ if (this.end.row === row)
389
+ return column <= this.end.column ? 0 : 1;
390
+
391
+ return 0;
392
+ };
393
+ this.compareStart = function(row, column) {
394
+ if (this.start.row == row && this.start.column == column) {
395
+ return -1;
396
+ } else {
397
+ return this.compare(row, column);
398
+ }
399
+ };
400
+ this.compareEnd = function(row, column) {
401
+ if (this.end.row == row && this.end.column == column) {
402
+ return 1;
403
+ } else {
404
+ return this.compare(row, column);
405
+ }
406
+ };
407
+ this.compareInside = function(row, column) {
408
+ if (this.end.row == row && this.end.column == column) {
409
+ return 1;
410
+ } else if (this.start.row == row && this.start.column == column) {
411
+ return -1;
412
+ } else {
413
+ return this.compare(row, column);
414
+ }
415
+ };
416
+ this.clipRows = function(firstRow, lastRow) {
417
+ if (this.end.row > lastRow)
418
+ var end = {row: lastRow + 1, column: 0};
419
+ else if (this.end.row < firstRow)
420
+ var end = {row: firstRow, column: 0};
421
+
422
+ if (this.start.row > lastRow)
423
+ var start = {row: lastRow + 1, column: 0};
424
+ else if (this.start.row < firstRow)
425
+ var start = {row: firstRow, column: 0};
426
+
427
+ return Range.fromPoints(start || this.start, end || this.end);
428
+ };
429
+ this.extend = function(row, column) {
430
+ var cmp = this.compare(row, column);
431
+
432
+ if (cmp == 0)
433
+ return this;
434
+ else if (cmp == -1)
435
+ var start = {row: row, column: column};
436
+ else
437
+ var end = {row: row, column: column};
438
+
439
+ return Range.fromPoints(start || this.start, end || this.end);
440
+ };
441
+
442
+ this.isEmpty = function() {
443
+ return (this.start.row === this.end.row && this.start.column === this.end.column);
444
+ };
445
+ this.isMultiLine = function() {
446
+ return (this.start.row !== this.end.row);
447
+ };
448
+ this.clone = function() {
449
+ return Range.fromPoints(this.start, this.end);
450
+ };
451
+ this.collapseRows = function() {
452
+ if (this.end.column == 0)
453
+ return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
454
+ else
455
+ return new Range(this.start.row, 0, this.end.row, 0)
456
+ };
457
+ this.toScreenRange = function(session) {
458
+ var screenPosStart = session.documentToScreenPosition(this.start);
459
+ var screenPosEnd = session.documentToScreenPosition(this.end);
460
+
461
+ return new Range(
462
+ screenPosStart.row, screenPosStart.column,
463
+ screenPosEnd.row, screenPosEnd.column
464
+ );
465
+ };
466
+ this.moveBy = function(row, column) {
467
+ this.start.row += row;
468
+ this.start.column += column;
469
+ this.end.row += row;
470
+ this.end.column += column;
471
+ };
472
+
473
+ }).call(Range.prototype);
474
+ Range.fromPoints = function(start, end) {
475
+ return new Range(start.row, start.column, end.row, end.column);
476
+ };
477
+ Range.comparePoints = comparePoints;
478
+
479
+ Range.comparePoints = function(p1, p2) {
480
+ return p1.row - p2.row || p1.column - p2.column;
481
+ };
482
+
483
+
484
+ exports.Range = Range;
485
+ });
486
+
487
+ define("ace/apply_delta",["require","exports","module"], function(require, exports, module) {
488
+ "use strict";
489
+
490
+ function throwDeltaError(delta, errorText){
491
+ console.log("Invalid Delta:", delta);
492
+ throw "Invalid Delta: " + errorText;
493
+ }
494
+
495
+ function positionInDocument(docLines, position) {
496
+ return position.row >= 0 && position.row < docLines.length &&
497
+ position.column >= 0 && position.column <= docLines[position.row].length;
498
+ }
499
+
500
+ function validateDelta(docLines, delta) {
501
+ if (delta.action != "insert" && delta.action != "remove")
502
+ throwDeltaError(delta, "delta.action must be 'insert' or 'remove'");
503
+ if (!(delta.lines instanceof Array))
504
+ throwDeltaError(delta, "delta.lines must be an Array");
505
+ if (!delta.start || !delta.end)
506
+ throwDeltaError(delta, "delta.start/end must be an present");
507
+ var start = delta.start;
508
+ if (!positionInDocument(docLines, delta.start))
509
+ throwDeltaError(delta, "delta.start must be contained in document");
510
+ var end = delta.end;
511
+ if (delta.action == "remove" && !positionInDocument(docLines, end))
512
+ throwDeltaError(delta, "delta.end must contained in document for 'remove' actions");
513
+ var numRangeRows = end.row - start.row;
514
+ var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));
515
+ if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)
516
+ throwDeltaError(delta, "delta.range must match delta lines");
517
+ }
518
+
519
+ exports.applyDelta = function(docLines, delta, doNotValidate) {
520
+
521
+ var row = delta.start.row;
522
+ var startColumn = delta.start.column;
523
+ var line = docLines[row] || "";
524
+ switch (delta.action) {
525
+ case "insert":
526
+ var lines = delta.lines;
527
+ if (lines.length === 1) {
528
+ docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);
529
+ } else {
530
+ var args = [row, 1].concat(delta.lines);
531
+ docLines.splice.apply(docLines, args);
532
+ docLines[row] = line.substring(0, startColumn) + docLines[row];
533
+ docLines[row + delta.lines.length - 1] += line.substring(startColumn);
534
+ }
535
+ break;
536
+ case "remove":
537
+ var endColumn = delta.end.column;
538
+ var endRow = delta.end.row;
539
+ if (row === endRow) {
540
+ docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);
541
+ } else {
542
+ docLines.splice(
543
+ row, endRow - row + 1,
544
+ line.substring(0, startColumn) + docLines[endRow].substring(endColumn)
545
+ );
546
+ }
547
+ break;
548
+ }
549
+ }
550
+ });
551
+
552
+ define("ace/lib/event_emitter",["require","exports","module"], function(require, exports, module) {
553
+ "use strict";
554
+
555
+ var EventEmitter = {};
556
+ var stopPropagation = function() { this.propagationStopped = true; };
557
+ var preventDefault = function() { this.defaultPrevented = true; };
558
+
559
+ EventEmitter._emit =
560
+ EventEmitter._dispatchEvent = function(eventName, e) {
561
+ this._eventRegistry || (this._eventRegistry = {});
562
+ this._defaultHandlers || (this._defaultHandlers = {});
563
+
564
+ var listeners = this._eventRegistry[eventName] || [];
565
+ var defaultHandler = this._defaultHandlers[eventName];
566
+ if (!listeners.length && !defaultHandler)
567
+ return;
568
+
569
+ if (typeof e != "object" || !e)
570
+ e = {};
571
+
572
+ if (!e.type)
573
+ e.type = eventName;
574
+ if (!e.stopPropagation)
575
+ e.stopPropagation = stopPropagation;
576
+ if (!e.preventDefault)
577
+ e.preventDefault = preventDefault;
578
+
579
+ listeners = listeners.slice();
580
+ for (var i=0; i<listeners.length; i++) {
581
+ listeners[i](e, this);
582
+ if (e.propagationStopped)
583
+ break;
584
+ }
585
+
586
+ if (defaultHandler && !e.defaultPrevented)
587
+ return defaultHandler(e, this);
588
+ };
589
+
590
+
591
+ EventEmitter._signal = function(eventName, e) {
592
+ var listeners = (this._eventRegistry || {})[eventName];
593
+ if (!listeners)
594
+ return;
595
+ listeners = listeners.slice();
596
+ for (var i=0; i<listeners.length; i++)
597
+ listeners[i](e, this);
598
+ };
599
+
600
+ EventEmitter.once = function(eventName, callback) {
601
+ var _self = this;
602
+ callback && this.addEventListener(eventName, function newCallback() {
603
+ _self.removeEventListener(eventName, newCallback);
604
+ callback.apply(null, arguments);
605
+ });
606
+ };
607
+
608
+
609
+ EventEmitter.setDefaultHandler = function(eventName, callback) {
610
+ var handlers = this._defaultHandlers
611
+ if (!handlers)
612
+ handlers = this._defaultHandlers = {_disabled_: {}};
613
+
614
+ if (handlers[eventName]) {
615
+ var old = handlers[eventName];
616
+ var disabled = handlers._disabled_[eventName];
617
+ if (!disabled)
618
+ handlers._disabled_[eventName] = disabled = [];
619
+ disabled.push(old);
620
+ var i = disabled.indexOf(callback);
621
+ if (i != -1)
622
+ disabled.splice(i, 1);
623
+ }
624
+ handlers[eventName] = callback;
625
+ };
626
+ EventEmitter.removeDefaultHandler = function(eventName, callback) {
627
+ var handlers = this._defaultHandlers
628
+ if (!handlers)
629
+ return;
630
+ var disabled = handlers._disabled_[eventName];
631
+
632
+ if (handlers[eventName] == callback) {
633
+ var old = handlers[eventName];
634
+ if (disabled)
635
+ this.setDefaultHandler(eventName, disabled.pop());
636
+ } else if (disabled) {
637
+ var i = disabled.indexOf(callback);
638
+ if (i != -1)
639
+ disabled.splice(i, 1);
640
+ }
641
+ };
642
+
643
+ EventEmitter.on =
644
+ EventEmitter.addEventListener = function(eventName, callback, capturing) {
645
+ this._eventRegistry = this._eventRegistry || {};
646
+
647
+ var listeners = this._eventRegistry[eventName];
648
+ if (!listeners)
649
+ listeners = this._eventRegistry[eventName] = [];
650
+
651
+ if (listeners.indexOf(callback) == -1)
652
+ listeners[capturing ? "unshift" : "push"](callback);
653
+ return callback;
654
+ };
655
+
656
+ EventEmitter.off =
657
+ EventEmitter.removeListener =
658
+ EventEmitter.removeEventListener = function(eventName, callback) {
659
+ this._eventRegistry = this._eventRegistry || {};
660
+
661
+ var listeners = this._eventRegistry[eventName];
662
+ if (!listeners)
663
+ return;
664
+
665
+ var index = listeners.indexOf(callback);
666
+ if (index !== -1)
667
+ listeners.splice(index, 1);
668
+ };
669
+
670
+ EventEmitter.removeAllListeners = function(eventName) {
671
+ if (this._eventRegistry) this._eventRegistry[eventName] = [];
672
+ };
673
+
674
+ exports.EventEmitter = EventEmitter;
675
+
676
+ });
677
+
678
+ define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"], function(require, exports, module) {
679
+ "use strict";
680
+
681
+ var oop = require("./lib/oop");
682
+ var EventEmitter = require("./lib/event_emitter").EventEmitter;
683
+
684
+ var Anchor = exports.Anchor = function(doc, row, column) {
685
+ this.$onChange = this.onChange.bind(this);
686
+ this.attach(doc);
687
+
688
+ if (typeof column == "undefined")
689
+ this.setPosition(row.row, row.column);
690
+ else
691
+ this.setPosition(row, column);
692
+ };
693
+
694
+ (function() {
695
+
696
+ oop.implement(this, EventEmitter);
697
+ this.getPosition = function() {
698
+ return this.$clipPositionToDocument(this.row, this.column);
699
+ };
700
+ this.getDocument = function() {
701
+ return this.document;
702
+ };
703
+ this.$insertRight = false;
704
+ this.onChange = function(delta) {
705
+ if (delta.start.row == delta.end.row && delta.start.row != this.row)
706
+ return;
707
+
708
+ if (delta.start.row > this.row)
709
+ return;
710
+
711
+ var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);
712
+ this.setPosition(point.row, point.column, true);
713
+ };
714
+
715
+ function $pointsInOrder(point1, point2, equalPointsInOrder) {
716
+ var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;
717
+ return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);
718
+ }
719
+
720
+ function $getTransformedPoint(delta, point, moveIfEqual) {
721
+ var deltaIsInsert = delta.action == "insert";
722
+ var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);
723
+ var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);
724
+ var deltaStart = delta.start;
725
+ var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.
726
+ if ($pointsInOrder(point, deltaStart, moveIfEqual)) {
727
+ return {
728
+ row: point.row,
729
+ column: point.column
730
+ };
731
+ }
732
+ if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {
733
+ return {
734
+ row: point.row + deltaRowShift,
735
+ column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)
736
+ };
737
+ }
738
+
739
+ return {
740
+ row: deltaStart.row,
741
+ column: deltaStart.column
742
+ };
743
+ }
744
+ this.setPosition = function(row, column, noClip) {
745
+ var pos;
746
+ if (noClip) {
747
+ pos = {
748
+ row: row,
749
+ column: column
750
+ };
751
+ } else {
752
+ pos = this.$clipPositionToDocument(row, column);
753
+ }
754
+
755
+ if (this.row == pos.row && this.column == pos.column)
756
+ return;
757
+
758
+ var old = {
759
+ row: this.row,
760
+ column: this.column
761
+ };
762
+
763
+ this.row = pos.row;
764
+ this.column = pos.column;
765
+ this._signal("change", {
766
+ old: old,
767
+ value: pos
768
+ });
769
+ };
770
+ this.detach = function() {
771
+ this.document.removeEventListener("change", this.$onChange);
772
+ };
773
+ this.attach = function(doc) {
774
+ this.document = doc || this.document;
775
+ this.document.on("change", this.$onChange);
776
+ };
777
+ this.$clipPositionToDocument = function(row, column) {
778
+ var pos = {};
779
+
780
+ if (row >= this.document.getLength()) {
781
+ pos.row = Math.max(0, this.document.getLength() - 1);
782
+ pos.column = this.document.getLine(pos.row).length;
783
+ }
784
+ else if (row < 0) {
785
+ pos.row = 0;
786
+ pos.column = 0;
787
+ }
788
+ else {
789
+ pos.row = row;
790
+ pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
791
+ }
792
+
793
+ if (column < 0)
794
+ pos.column = 0;
795
+
796
+ return pos;
797
+ };
798
+
799
+ }).call(Anchor.prototype);
800
+
801
+ });
802
+
803
+ define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"], function(require, exports, module) {
804
+ "use strict";
805
+ var oop = require("./lib/oop");
806
+ var applyDelta = require("./apply_delta").applyDelta;
807
+ var EventEmitter = require("./lib/event_emitter").EventEmitter;
808
+ var Range = require("./range").Range;
809
+ var Anchor = require("./anchor").Anchor;
810
+
811
+ var Document = function(textOrLines) {
812
+ this.$lines = [""];
813
+ if (textOrLines.length === 0) {
814
+ this.$lines = [""];
815
+ } else if (Array.isArray(textOrLines)) {
816
+ this.insertMergedLines({row: 0, column: 0}, textOrLines);
817
+ } else {
818
+ this.insert({row: 0, column:0}, textOrLines);
819
+ }
820
+ };
821
+
822
+ (function() {
823
+
824
+ oop.implement(this, EventEmitter);
825
+ this.setValue = function(text) {
826
+ var len = this.getLength() - 1;
827
+ this.remove(new Range(0, 0, len, this.getLine(len).length));
828
+ this.insert({row: 0, column: 0}, text);
829
+ };
830
+ this.getValue = function() {
831
+ return this.getAllLines().join(this.getNewLineCharacter());
832
+ };
833
+ this.createAnchor = function(row, column) {
834
+ return new Anchor(this, row, column);
835
+ };
836
+ if ("aaa".split(/a/).length === 0) {
837
+ this.$split = function(text) {
838
+ return text.replace(/\r\n|\r/g, "\n").split("\n");
839
+ };
840
+ } else {
841
+ this.$split = function(text) {
842
+ return text.split(/\r\n|\r|\n/);
843
+ };
844
+ }
845
+
846
+
847
+ this.$detectNewLine = function(text) {
848
+ var match = text.match(/^.*?(\r\n|\r|\n)/m);
849
+ this.$autoNewLine = match ? match[1] : "\n";
850
+ this._signal("changeNewLineMode");
851
+ };
852
+ this.getNewLineCharacter = function() {
853
+ switch (this.$newLineMode) {
854
+ case "windows":
855
+ return "\r\n";
856
+ case "unix":
857
+ return "\n";
858
+ default:
859
+ return this.$autoNewLine || "\n";
860
+ }
861
+ };
862
+
863
+ this.$autoNewLine = "";
864
+ this.$newLineMode = "auto";
865
+ this.setNewLineMode = function(newLineMode) {
866
+ if (this.$newLineMode === newLineMode)
867
+ return;
868
+
869
+ this.$newLineMode = newLineMode;
870
+ this._signal("changeNewLineMode");
871
+ };
872
+ this.getNewLineMode = function() {
873
+ return this.$newLineMode;
874
+ };
875
+ this.isNewLine = function(text) {
876
+ return (text == "\r\n" || text == "\r" || text == "\n");
877
+ };
878
+ this.getLine = function(row) {
879
+ return this.$lines[row] || "";
880
+ };
881
+ this.getLines = function(firstRow, lastRow) {
882
+ return this.$lines.slice(firstRow, lastRow + 1);
883
+ };
884
+ this.getAllLines = function() {
885
+ return this.getLines(0, this.getLength());
886
+ };
887
+ this.getLength = function() {
888
+ return this.$lines.length;
889
+ };
890
+ this.getTextRange = function(range) {
891
+ return this.getLinesForRange(range).join(this.getNewLineCharacter());
892
+ };
893
+ this.getLinesForRange = function(range) {
894
+ var lines;
895
+ if (range.start.row === range.end.row) {
896
+ lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];
897
+ } else {
898
+ lines = this.getLines(range.start.row, range.end.row);
899
+ lines[0] = (lines[0] || "").substring(range.start.column);
900
+ var l = lines.length - 1;
901
+ if (range.end.row - range.start.row == l)
902
+ lines[l] = lines[l].substring(0, range.end.column);
903
+ }
904
+ return lines;
905
+ };
906
+ this.insertLines = function(row, lines) {
907
+ console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead.");
908
+ return this.insertFullLines(row, lines);
909
+ };
910
+ this.removeLines = function(firstRow, lastRow) {
911
+ console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead.");
912
+ return this.removeFullLines(firstRow, lastRow);
913
+ };
914
+ this.insertNewLine = function(position) {
915
+ console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.");
916
+ return this.insertMergedLines(position, ["", ""]);
917
+ };
918
+ this.insert = function(position, text) {
919
+ if (this.getLength() <= 1)
920
+ this.$detectNewLine(text);
921
+
922
+ return this.insertMergedLines(position, this.$split(text));
923
+ };
924
+ this.insertInLine = function(position, text) {
925
+ var start = this.clippedPos(position.row, position.column);
926
+ var end = this.pos(position.row, position.column + text.length);
927
+
928
+ this.applyDelta({
929
+ start: start,
930
+ end: end,
931
+ action: "insert",
932
+ lines: [text]
933
+ }, true);
934
+
935
+ return this.clonePos(end);
936
+ };
937
+
938
+ this.clippedPos = function(row, column) {
939
+ var length = this.getLength();
940
+ if (row === undefined) {
941
+ row = length;
942
+ } else if (row < 0) {
943
+ row = 0;
944
+ } else if (row >= length) {
945
+ row = length - 1;
946
+ column = undefined;
947
+ }
948
+ var line = this.getLine(row);
949
+ if (column == undefined)
950
+ column = line.length;
951
+ column = Math.min(Math.max(column, 0), line.length);
952
+ return {row: row, column: column};
953
+ };
954
+
955
+ this.clonePos = function(pos) {
956
+ return {row: pos.row, column: pos.column};
957
+ };
958
+
959
+ this.pos = function(row, column) {
960
+ return {row: row, column: column};
961
+ };
962
+
963
+ this.$clipPosition = function(position) {
964
+ var length = this.getLength();
965
+ if (position.row >= length) {
966
+ position.row = Math.max(0, length - 1);
967
+ position.column = this.getLine(length - 1).length;
968
+ } else {
969
+ position.row = Math.max(0, position.row);
970
+ position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);
971
+ }
972
+ return position;
973
+ };
974
+ this.insertFullLines = function(row, lines) {
975
+ row = Math.min(Math.max(row, 0), this.getLength());
976
+ var column = 0;
977
+ if (row < this.getLength()) {
978
+ lines = lines.concat([""]);
979
+ column = 0;
980
+ } else {
981
+ lines = [""].concat(lines);
982
+ row--;
983
+ column = this.$lines[row].length;
984
+ }
985
+ this.insertMergedLines({row: row, column: column}, lines);
986
+ };
987
+ this.insertMergedLines = function(position, lines) {
988
+ var start = this.clippedPos(position.row, position.column);
989
+ var end = {
990
+ row: start.row + lines.length - 1,
991
+ column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length
992
+ };
993
+
994
+ this.applyDelta({
995
+ start: start,
996
+ end: end,
997
+ action: "insert",
998
+ lines: lines
999
+ });
1000
+
1001
+ return this.clonePos(end);
1002
+ };
1003
+ this.remove = function(range) {
1004
+ var start = this.clippedPos(range.start.row, range.start.column);
1005
+ var end = this.clippedPos(range.end.row, range.end.column);
1006
+ this.applyDelta({
1007
+ start: start,
1008
+ end: end,
1009
+ action: "remove",
1010
+ lines: this.getLinesForRange({start: start, end: end})
1011
+ });
1012
+ return this.clonePos(start);
1013
+ };
1014
+ this.removeInLine = function(row, startColumn, endColumn) {
1015
+ var start = this.clippedPos(row, startColumn);
1016
+ var end = this.clippedPos(row, endColumn);
1017
+
1018
+ this.applyDelta({
1019
+ start: start,
1020
+ end: end,
1021
+ action: "remove",
1022
+ lines: this.getLinesForRange({start: start, end: end})
1023
+ }, true);
1024
+
1025
+ return this.clonePos(start);
1026
+ };
1027
+ this.removeFullLines = function(firstRow, lastRow) {
1028
+ firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);
1029
+ lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);
1030
+ var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;
1031
+ var deleteLastNewLine = lastRow < this.getLength() - 1;
1032
+ var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );
1033
+ var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );
1034
+ var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );
1035
+ var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length );
1036
+ var range = new Range(startRow, startCol, endRow, endCol);
1037
+ var deletedLines = this.$lines.slice(firstRow, lastRow + 1);
1038
+
1039
+ this.applyDelta({
1040
+ start: range.start,
1041
+ end: range.end,
1042
+ action: "remove",
1043
+ lines: this.getLinesForRange(range)
1044
+ });
1045
+ return deletedLines;
1046
+ };
1047
+ this.removeNewLine = function(row) {
1048
+ if (row < this.getLength() - 1 && row >= 0) {
1049
+ this.applyDelta({
1050
+ start: this.pos(row, this.getLine(row).length),
1051
+ end: this.pos(row + 1, 0),
1052
+ action: "remove",
1053
+ lines: ["", ""]
1054
+ });
1055
+ }
1056
+ };
1057
+ this.replace = function(range, text) {
1058
+ if (!(range instanceof Range))
1059
+ range = Range.fromPoints(range.start, range.end);
1060
+ if (text.length === 0 && range.isEmpty())
1061
+ return range.start;
1062
+ if (text == this.getTextRange(range))
1063
+ return range.end;
1064
+
1065
+ this.remove(range);
1066
+ var end;
1067
+ if (text) {
1068
+ end = this.insert(range.start, text);
1069
+ }
1070
+ else {
1071
+ end = range.start;
1072
+ }
1073
+
1074
+ return end;
1075
+ };
1076
+ this.applyDeltas = function(deltas) {
1077
+ for (var i=0; i<deltas.length; i++) {
1078
+ this.applyDelta(deltas[i]);
1079
+ }
1080
+ };
1081
+ this.revertDeltas = function(deltas) {
1082
+ for (var i=deltas.length-1; i>=0; i--) {
1083
+ this.revertDelta(deltas[i]);
1084
+ }
1085
+ };
1086
+ this.applyDelta = function(delta, doNotValidate) {
1087
+ var isInsert = delta.action == "insert";
1088
+ if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]
1089
+ : !Range.comparePoints(delta.start, delta.end)) {
1090
+ return;
1091
+ }
1092
+
1093
+ if (isInsert && delta.lines.length > 20000)
1094
+ this.$splitAndapplyLargeDelta(delta, 20000);
1095
+ applyDelta(this.$lines, delta, doNotValidate);
1096
+ this._signal("change", delta);
1097
+ };
1098
+
1099
+ this.$splitAndapplyLargeDelta = function(delta, MAX) {
1100
+ var lines = delta.lines;
1101
+ var l = lines.length;
1102
+ var row = delta.start.row;
1103
+ var column = delta.start.column;
1104
+ var from = 0, to = 0;
1105
+ do {
1106
+ from = to;
1107
+ to += MAX - 1;
1108
+ var chunk = lines.slice(from, to);
1109
+ if (to > l) {
1110
+ delta.lines = chunk;
1111
+ delta.start.row = row + from;
1112
+ delta.start.column = column;
1113
+ break;
1114
+ }
1115
+ chunk.push("");
1116
+ this.applyDelta({
1117
+ start: this.pos(row + from, column),
1118
+ end: this.pos(row + to, column = 0),
1119
+ action: delta.action,
1120
+ lines: chunk
1121
+ }, true);
1122
+ } while(true);
1123
+ };
1124
+ this.revertDelta = function(delta) {
1125
+ this.applyDelta({
1126
+ start: this.clonePos(delta.start),
1127
+ end: this.clonePos(delta.end),
1128
+ action: (delta.action == "insert" ? "remove" : "insert"),
1129
+ lines: delta.lines.slice()
1130
+ });
1131
+ };
1132
+ this.indexToPosition = function(index, startRow) {
1133
+ var lines = this.$lines || this.getAllLines();
1134
+ var newlineLength = this.getNewLineCharacter().length;
1135
+ for (var i = startRow || 0, l = lines.length; i < l; i++) {
1136
+ index -= lines[i].length + newlineLength;
1137
+ if (index < 0)
1138
+ return {row: i, column: index + lines[i].length + newlineLength};
1139
+ }
1140
+ return {row: l-1, column: lines[l-1].length};
1141
+ };
1142
+ this.positionToIndex = function(pos, startRow) {
1143
+ var lines = this.$lines || this.getAllLines();
1144
+ var newlineLength = this.getNewLineCharacter().length;
1145
+ var index = 0;
1146
+ var row = Math.min(pos.row, lines.length);
1147
+ for (var i = startRow || 0; i < row; ++i)
1148
+ index += lines[i].length + newlineLength;
1149
+
1150
+ return index + pos.column;
1151
+ };
1152
+
1153
+ }).call(Document.prototype);
1154
+
1155
+ exports.Document = Document;
1156
+ });
1157
+
1158
+ define("ace/lib/lang",["require","exports","module"], function(require, exports, module) {
1159
+ "use strict";
1160
+
1161
+ exports.last = function(a) {
1162
+ return a[a.length - 1];
1163
+ };
1164
+
1165
+ exports.stringReverse = function(string) {
1166
+ return string.split("").reverse().join("");
1167
+ };
1168
+
1169
+ exports.stringRepeat = function (string, count) {
1170
+ var result = '';
1171
+ while (count > 0) {
1172
+ if (count & 1)
1173
+ result += string;
1174
+
1175
+ if (count >>= 1)
1176
+ string += string;
1177
+ }
1178
+ return result;
1179
+ };
1180
+
1181
+ var trimBeginRegexp = /^\s\s*/;
1182
+ var trimEndRegexp = /\s\s*$/;
1183
+
1184
+ exports.stringTrimLeft = function (string) {
1185
+ return string.replace(trimBeginRegexp, '');
1186
+ };
1187
+
1188
+ exports.stringTrimRight = function (string) {
1189
+ return string.replace(trimEndRegexp, '');
1190
+ };
1191
+
1192
+ exports.copyObject = function(obj) {
1193
+ var copy = {};
1194
+ for (var key in obj) {
1195
+ copy[key] = obj[key];
1196
+ }
1197
+ return copy;
1198
+ };
1199
+
1200
+ exports.copyArray = function(array){
1201
+ var copy = [];
1202
+ for (var i=0, l=array.length; i<l; i++) {
1203
+ if (array[i] && typeof array[i] == "object")
1204
+ copy[i] = this.copyObject(array[i]);
1205
+ else
1206
+ copy[i] = array[i];
1207
+ }
1208
+ return copy;
1209
+ };
1210
+
1211
+ exports.deepCopy = function deepCopy(obj) {
1212
+ if (typeof obj !== "object" || !obj)
1213
+ return obj;
1214
+ var copy;
1215
+ if (Array.isArray(obj)) {
1216
+ copy = [];
1217
+ for (var key = 0; key < obj.length; key++) {
1218
+ copy[key] = deepCopy(obj[key]);
1219
+ }
1220
+ return copy;
1221
+ }
1222
+ if (Object.prototype.toString.call(obj) !== "[object Object]")
1223
+ return obj;
1224
+
1225
+ copy = {};
1226
+ for (var key in obj)
1227
+ copy[key] = deepCopy(obj[key]);
1228
+ return copy;
1229
+ };
1230
+
1231
+ exports.arrayToMap = function(arr) {
1232
+ var map = {};
1233
+ for (var i=0; i<arr.length; i++) {
1234
+ map[arr[i]] = 1;
1235
+ }
1236
+ return map;
1237
+
1238
+ };
1239
+
1240
+ exports.createMap = function(props) {
1241
+ var map = Object.create(null);
1242
+ for (var i in props) {
1243
+ map[i] = props[i];
1244
+ }
1245
+ return map;
1246
+ };
1247
+ exports.arrayRemove = function(array, value) {
1248
+ for (var i = 0; i <= array.length; i++) {
1249
+ if (value === array[i]) {
1250
+ array.splice(i, 1);
1251
+ }
1252
+ }
1253
+ };
1254
+
1255
+ exports.escapeRegExp = function(str) {
1256
+ return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
1257
+ };
1258
+
1259
+ exports.escapeHTML = function(str) {
1260
+ return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
1261
+ };
1262
+
1263
+ exports.getMatchOffsets = function(string, regExp) {
1264
+ var matches = [];
1265
+
1266
+ string.replace(regExp, function(str) {
1267
+ matches.push({
1268
+ offset: arguments[arguments.length-2],
1269
+ length: str.length
1270
+ });
1271
+ });
1272
+
1273
+ return matches;
1274
+ };
1275
+ exports.deferredCall = function(fcn) {
1276
+ var timer = null;
1277
+ var callback = function() {
1278
+ timer = null;
1279
+ fcn();
1280
+ };
1281
+
1282
+ var deferred = function(timeout) {
1283
+ deferred.cancel();
1284
+ timer = setTimeout(callback, timeout || 0);
1285
+ return deferred;
1286
+ };
1287
+
1288
+ deferred.schedule = deferred;
1289
+
1290
+ deferred.call = function() {
1291
+ this.cancel();
1292
+ fcn();
1293
+ return deferred;
1294
+ };
1295
+
1296
+ deferred.cancel = function() {
1297
+ clearTimeout(timer);
1298
+ timer = null;
1299
+ return deferred;
1300
+ };
1301
+
1302
+ deferred.isPending = function() {
1303
+ return timer;
1304
+ };
1305
+
1306
+ return deferred;
1307
+ };
1308
+
1309
+
1310
+ exports.delayedCall = function(fcn, defaultTimeout) {
1311
+ var timer = null;
1312
+ var callback = function() {
1313
+ timer = null;
1314
+ fcn();
1315
+ };
1316
+
1317
+ var _self = function(timeout) {
1318
+ if (timer == null)
1319
+ timer = setTimeout(callback, timeout || defaultTimeout);
1320
+ };
1321
+
1322
+ _self.delay = function(timeout) {
1323
+ timer && clearTimeout(timer);
1324
+ timer = setTimeout(callback, timeout || defaultTimeout);
1325
+ };
1326
+ _self.schedule = _self;
1327
+
1328
+ _self.call = function() {
1329
+ this.cancel();
1330
+ fcn();
1331
+ };
1332
+
1333
+ _self.cancel = function() {
1334
+ timer && clearTimeout(timer);
1335
+ timer = null;
1336
+ };
1337
+
1338
+ _self.isPending = function() {
1339
+ return timer;
1340
+ };
1341
+
1342
+ return _self;
1343
+ };
1344
+ });
1345
+
1346
+ define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"], function(require, exports, module) {
1347
+ "use strict";
1348
+
1349
+ var Range = require("../range").Range;
1350
+ var Document = require("../document").Document;
1351
+ var lang = require("../lib/lang");
1352
+
1353
+ var Mirror = exports.Mirror = function(sender) {
1354
+ this.sender = sender;
1355
+ var doc = this.doc = new Document("");
1356
+
1357
+ var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
1358
+
1359
+ var _self = this;
1360
+ sender.on("change", function(e) {
1361
+ var data = e.data;
1362
+ if (data[0].start) {
1363
+ doc.applyDeltas(data);
1364
+ } else {
1365
+ for (var i = 0; i < data.length; i += 2) {
1366
+ if (Array.isArray(data[i+1])) {
1367
+ var d = {action: "insert", start: data[i], lines: data[i+1]};
1368
+ } else {
1369
+ var d = {action: "remove", start: data[i], end: data[i+1]};
1370
+ }
1371
+ doc.applyDelta(d, true);
1372
+ }
1373
+ }
1374
+ if (_self.$timeout)
1375
+ return deferredUpdate.schedule(_self.$timeout);
1376
+ _self.onUpdate();
1377
+ });
1378
+ };
1379
+
1380
+ (function() {
1381
+
1382
+ this.$timeout = 500;
1383
+
1384
+ this.setTimeout = function(timeout) {
1385
+ this.$timeout = timeout;
1386
+ };
1387
+
1388
+ this.setValue = function(value) {
1389
+ this.doc.setValue(value);
1390
+ this.deferredUpdate.schedule(this.$timeout);
1391
+ };
1392
+
1393
+ this.getValue = function(callbackId) {
1394
+ this.sender.callback(this.doc.getValue(), callbackId);
1395
+ };
1396
+
1397
+ this.onUpdate = function() {
1398
+ };
1399
+
1400
+ this.isPending = function() {
1401
+ return this.deferredUpdate.isPending();
1402
+ };
1403
+
1404
+ }).call(Mirror.prototype);
1405
+
1406
+ });
1407
+
1408
+ define("ace/lib/es5-shim",["require","exports","module"], function(require, exports, module) {
1409
+
1410
+ function Empty() {}
1411
+
1412
+ if (!Function.prototype.bind) {
1413
+ Function.prototype.bind = function bind(that) { // .length is 1
1414
+ var target = this;
1415
+ if (typeof target != "function") {
1416
+ throw new TypeError("Function.prototype.bind called on incompatible " + target);
1417
+ }
1418
+ var args = slice.call(arguments, 1); // for normal call
1419
+ var bound = function () {
1420
+
1421
+ if (this instanceof bound) {
1422
+
1423
+ var result = target.apply(
1424
+ this,
1425
+ args.concat(slice.call(arguments))
1426
+ );
1427
+ if (Object(result) === result) {
1428
+ return result;
1429
+ }
1430
+ return this;
1431
+
1432
+ } else {
1433
+ return target.apply(
1434
+ that,
1435
+ args.concat(slice.call(arguments))
1436
+ );
1437
+
1438
+ }
1439
+
1440
+ };
1441
+ if(target.prototype) {
1442
+ Empty.prototype = target.prototype;
1443
+ bound.prototype = new Empty();
1444
+ Empty.prototype = null;
1445
+ }
1446
+ return bound;
1447
+ };
1448
+ }
1449
+ var call = Function.prototype.call;
1450
+ var prototypeOfArray = Array.prototype;
1451
+ var prototypeOfObject = Object.prototype;
1452
+ var slice = prototypeOfArray.slice;
1453
+ var _toString = call.bind(prototypeOfObject.toString);
1454
+ var owns = call.bind(prototypeOfObject.hasOwnProperty);
1455
+ var defineGetter;
1456
+ var defineSetter;
1457
+ var lookupGetter;
1458
+ var lookupSetter;
1459
+ var supportsAccessors;
1460
+ if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
1461
+ defineGetter = call.bind(prototypeOfObject.__defineGetter__);
1462
+ defineSetter = call.bind(prototypeOfObject.__defineSetter__);
1463
+ lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
1464
+ lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
1465
+ }
1466
+ if ([1,2].splice(0).length != 2) {
1467
+ if(function() { // test IE < 9 to splice bug - see issue #138
1468
+ function makeArray(l) {
1469
+ var a = new Array(l+2);
1470
+ a[0] = a[1] = 0;
1471
+ return a;
1472
+ }
1473
+ var array = [], lengthBefore;
1474
+
1475
+ array.splice.apply(array, makeArray(20));
1476
+ array.splice.apply(array, makeArray(26));
1477
+
1478
+ lengthBefore = array.length; //46
1479
+ array.splice(5, 0, "XXX"); // add one element
1480
+
1481
+ lengthBefore + 1 == array.length
1482
+
1483
+ if (lengthBefore + 1 == array.length) {
1484
+ return true;// has right splice implementation without bugs
1485
+ }
1486
+ }()) {//IE 6/7
1487
+ var array_splice = Array.prototype.splice;
1488
+ Array.prototype.splice = function(start, deleteCount) {
1489
+ if (!arguments.length) {
1490
+ return [];
1491
+ } else {
1492
+ return array_splice.apply(this, [
1493
+ start === void 0 ? 0 : start,
1494
+ deleteCount === void 0 ? (this.length - start) : deleteCount
1495
+ ].concat(slice.call(arguments, 2)))
1496
+ }
1497
+ };
1498
+ } else {//IE8
1499
+ Array.prototype.splice = function(pos, removeCount){
1500
+ var length = this.length;
1501
+ if (pos > 0) {
1502
+ if (pos > length)
1503
+ pos = length;
1504
+ } else if (pos == void 0) {
1505
+ pos = 0;
1506
+ } else if (pos < 0) {
1507
+ pos = Math.max(length + pos, 0);
1508
+ }
1509
+
1510
+ if (!(pos+removeCount < length))
1511
+ removeCount = length - pos;
1512
+
1513
+ var removed = this.slice(pos, pos+removeCount);
1514
+ var insert = slice.call(arguments, 2);
1515
+ var add = insert.length;
1516
+ if (pos === length) {
1517
+ if (add) {
1518
+ this.push.apply(this, insert);
1519
+ }
1520
+ } else {
1521
+ var remove = Math.min(removeCount, length - pos);
1522
+ var tailOldPos = pos + remove;
1523
+ var tailNewPos = tailOldPos + add - remove;
1524
+ var tailCount = length - tailOldPos;
1525
+ var lengthAfterRemove = length - remove;
1526
+
1527
+ if (tailNewPos < tailOldPos) { // case A
1528
+ for (var i = 0; i < tailCount; ++i) {
1529
+ this[tailNewPos+i] = this[tailOldPos+i];
1530
+ }
1531
+ } else if (tailNewPos > tailOldPos) { // case B
1532
+ for (i = tailCount; i--; ) {
1533
+ this[tailNewPos+i] = this[tailOldPos+i];
1534
+ }
1535
+ } // else, add == remove (nothing to do)
1536
+
1537
+ if (add && pos === lengthAfterRemove) {
1538
+ this.length = lengthAfterRemove; // truncate array
1539
+ this.push.apply(this, insert);
1540
+ } else {
1541
+ this.length = lengthAfterRemove + add; // reserves space
1542
+ for (i = 0; i < add; ++i) {
1543
+ this[pos+i] = insert[i];
1544
+ }
1545
+ }
1546
+ }
1547
+ return removed;
1548
+ };
1549
+ }
1550
+ }
1551
+ if (!Array.isArray) {
1552
+ Array.isArray = function isArray(obj) {
1553
+ return _toString(obj) == "[object Array]";
1554
+ };
1555
+ }
1556
+ var boxedString = Object("a"),
1557
+ splitString = boxedString[0] != "a" || !(0 in boxedString);
1558
+
1559
+ if (!Array.prototype.forEach) {
1560
+ Array.prototype.forEach = function forEach(fun /*, thisp*/) {
1561
+ var object = toObject(this),
1562
+ self = splitString && _toString(this) == "[object String]" ?
1563
+ this.split("") :
1564
+ object,
1565
+ thisp = arguments[1],
1566
+ i = -1,
1567
+ length = self.length >>> 0;
1568
+ if (_toString(fun) != "[object Function]") {
1569
+ throw new TypeError(); // TODO message
1570
+ }
1571
+
1572
+ while (++i < length) {
1573
+ if (i in self) {
1574
+ fun.call(thisp, self[i], i, object);
1575
+ }
1576
+ }
1577
+ };
1578
+ }
1579
+ if (!Array.prototype.map) {
1580
+ Array.prototype.map = function map(fun /*, thisp*/) {
1581
+ var object = toObject(this),
1582
+ self = splitString && _toString(this) == "[object String]" ?
1583
+ this.split("") :
1584
+ object,
1585
+ length = self.length >>> 0,
1586
+ result = Array(length),
1587
+ thisp = arguments[1];
1588
+ if (_toString(fun) != "[object Function]") {
1589
+ throw new TypeError(fun + " is not a function");
1590
+ }
1591
+
1592
+ for (var i = 0; i < length; i++) {
1593
+ if (i in self)
1594
+ result[i] = fun.call(thisp, self[i], i, object);
1595
+ }
1596
+ return result;
1597
+ };
1598
+ }
1599
+ if (!Array.prototype.filter) {
1600
+ Array.prototype.filter = function filter(fun /*, thisp */) {
1601
+ var object = toObject(this),
1602
+ self = splitString && _toString(this) == "[object String]" ?
1603
+ this.split("") :
1604
+ object,
1605
+ length = self.length >>> 0,
1606
+ result = [],
1607
+ value,
1608
+ thisp = arguments[1];
1609
+ if (_toString(fun) != "[object Function]") {
1610
+ throw new TypeError(fun + " is not a function");
1611
+ }
1612
+
1613
+ for (var i = 0; i < length; i++) {
1614
+ if (i in self) {
1615
+ value = self[i];
1616
+ if (fun.call(thisp, value, i, object)) {
1617
+ result.push(value);
1618
+ }
1619
+ }
1620
+ }
1621
+ return result;
1622
+ };
1623
+ }
1624
+ if (!Array.prototype.every) {
1625
+ Array.prototype.every = function every(fun /*, thisp */) {
1626
+ var object = toObject(this),
1627
+ self = splitString && _toString(this) == "[object String]" ?
1628
+ this.split("") :
1629
+ object,
1630
+ length = self.length >>> 0,
1631
+ thisp = arguments[1];
1632
+ if (_toString(fun) != "[object Function]") {
1633
+ throw new TypeError(fun + " is not a function");
1634
+ }
1635
+
1636
+ for (var i = 0; i < length; i++) {
1637
+ if (i in self && !fun.call(thisp, self[i], i, object)) {
1638
+ return false;
1639
+ }
1640
+ }
1641
+ return true;
1642
+ };
1643
+ }
1644
+ if (!Array.prototype.some) {
1645
+ Array.prototype.some = function some(fun /*, thisp */) {
1646
+ var object = toObject(this),
1647
+ self = splitString && _toString(this) == "[object String]" ?
1648
+ this.split("") :
1649
+ object,
1650
+ length = self.length >>> 0,
1651
+ thisp = arguments[1];
1652
+ if (_toString(fun) != "[object Function]") {
1653
+ throw new TypeError(fun + " is not a function");
1654
+ }
1655
+
1656
+ for (var i = 0; i < length; i++) {
1657
+ if (i in self && fun.call(thisp, self[i], i, object)) {
1658
+ return true;
1659
+ }
1660
+ }
1661
+ return false;
1662
+ };
1663
+ }
1664
+ if (!Array.prototype.reduce) {
1665
+ Array.prototype.reduce = function reduce(fun /*, initial*/) {
1666
+ var object = toObject(this),
1667
+ self = splitString && _toString(this) == "[object String]" ?
1668
+ this.split("") :
1669
+ object,
1670
+ length = self.length >>> 0;
1671
+ if (_toString(fun) != "[object Function]") {
1672
+ throw new TypeError(fun + " is not a function");
1673
+ }
1674
+ if (!length && arguments.length == 1) {
1675
+ throw new TypeError("reduce of empty array with no initial value");
1676
+ }
1677
+
1678
+ var i = 0;
1679
+ var result;
1680
+ if (arguments.length >= 2) {
1681
+ result = arguments[1];
1682
+ } else {
1683
+ do {
1684
+ if (i in self) {
1685
+ result = self[i++];
1686
+ break;
1687
+ }
1688
+ if (++i >= length) {
1689
+ throw new TypeError("reduce of empty array with no initial value");
1690
+ }
1691
+ } while (true);
1692
+ }
1693
+
1694
+ for (; i < length; i++) {
1695
+ if (i in self) {
1696
+ result = fun.call(void 0, result, self[i], i, object);
1697
+ }
1698
+ }
1699
+
1700
+ return result;
1701
+ };
1702
+ }
1703
+ if (!Array.prototype.reduceRight) {
1704
+ Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
1705
+ var object = toObject(this),
1706
+ self = splitString && _toString(this) == "[object String]" ?
1707
+ this.split("") :
1708
+ object,
1709
+ length = self.length >>> 0;
1710
+ if (_toString(fun) != "[object Function]") {
1711
+ throw new TypeError(fun + " is not a function");
1712
+ }
1713
+ if (!length && arguments.length == 1) {
1714
+ throw new TypeError("reduceRight of empty array with no initial value");
1715
+ }
1716
+
1717
+ var result, i = length - 1;
1718
+ if (arguments.length >= 2) {
1719
+ result = arguments[1];
1720
+ } else {
1721
+ do {
1722
+ if (i in self) {
1723
+ result = self[i--];
1724
+ break;
1725
+ }
1726
+ if (--i < 0) {
1727
+ throw new TypeError("reduceRight of empty array with no initial value");
1728
+ }
1729
+ } while (true);
1730
+ }
1731
+
1732
+ do {
1733
+ if (i in this) {
1734
+ result = fun.call(void 0, result, self[i], i, object);
1735
+ }
1736
+ } while (i--);
1737
+
1738
+ return result;
1739
+ };
1740
+ }
1741
+ if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
1742
+ Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
1743
+ var self = splitString && _toString(this) == "[object String]" ?
1744
+ this.split("") :
1745
+ toObject(this),
1746
+ length = self.length >>> 0;
1747
+
1748
+ if (!length) {
1749
+ return -1;
1750
+ }
1751
+
1752
+ var i = 0;
1753
+ if (arguments.length > 1) {
1754
+ i = toInteger(arguments[1]);
1755
+ }
1756
+ i = i >= 0 ? i : Math.max(0, length + i);
1757
+ for (; i < length; i++) {
1758
+ if (i in self && self[i] === sought) {
1759
+ return i;
1760
+ }
1761
+ }
1762
+ return -1;
1763
+ };
1764
+ }
1765
+ if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
1766
+ Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
1767
+ var self = splitString && _toString(this) == "[object String]" ?
1768
+ this.split("") :
1769
+ toObject(this),
1770
+ length = self.length >>> 0;
1771
+
1772
+ if (!length) {
1773
+ return -1;
1774
+ }
1775
+ var i = length - 1;
1776
+ if (arguments.length > 1) {
1777
+ i = Math.min(i, toInteger(arguments[1]));
1778
+ }
1779
+ i = i >= 0 ? i : length - Math.abs(i);
1780
+ for (; i >= 0; i--) {
1781
+ if (i in self && sought === self[i]) {
1782
+ return i;
1783
+ }
1784
+ }
1785
+ return -1;
1786
+ };
1787
+ }
1788
+ if (!Object.getPrototypeOf) {
1789
+ Object.getPrototypeOf = function getPrototypeOf(object) {
1790
+ return object.__proto__ || (
1791
+ object.constructor ?
1792
+ object.constructor.prototype :
1793
+ prototypeOfObject
1794
+ );
1795
+ };
1796
+ }
1797
+ if (!Object.getOwnPropertyDescriptor) {
1798
+ var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
1799
+ "non-object: ";
1800
+ Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
1801
+ if ((typeof object != "object" && typeof object != "function") || object === null)
1802
+ throw new TypeError(ERR_NON_OBJECT + object);
1803
+ if (!owns(object, property))
1804
+ return;
1805
+
1806
+ var descriptor, getter, setter;
1807
+ descriptor = { enumerable: true, configurable: true };
1808
+ if (supportsAccessors) {
1809
+ var prototype = object.__proto__;
1810
+ object.__proto__ = prototypeOfObject;
1811
+
1812
+ var getter = lookupGetter(object, property);
1813
+ var setter = lookupSetter(object, property);
1814
+ object.__proto__ = prototype;
1815
+
1816
+ if (getter || setter) {
1817
+ if (getter) descriptor.get = getter;
1818
+ if (setter) descriptor.set = setter;
1819
+ return descriptor;
1820
+ }
1821
+ }
1822
+ descriptor.value = object[property];
1823
+ return descriptor;
1824
+ };
1825
+ }
1826
+ if (!Object.getOwnPropertyNames) {
1827
+ Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
1828
+ return Object.keys(object);
1829
+ };
1830
+ }
1831
+ if (!Object.create) {
1832
+ var createEmpty;
1833
+ if (Object.prototype.__proto__ === null) {
1834
+ createEmpty = function () {
1835
+ return { "__proto__": null };
1836
+ };
1837
+ } else {
1838
+ createEmpty = function () {
1839
+ var empty = {};
1840
+ for (var i in empty)
1841
+ empty[i] = null;
1842
+ empty.constructor =
1843
+ empty.hasOwnProperty =
1844
+ empty.propertyIsEnumerable =
1845
+ empty.isPrototypeOf =
1846
+ empty.toLocaleString =
1847
+ empty.toString =
1848
+ empty.valueOf =
1849
+ empty.__proto__ = null;
1850
+ return empty;
1851
+ }
1852
+ }
1853
+
1854
+ Object.create = function create(prototype, properties) {
1855
+ var object;
1856
+ if (prototype === null) {
1857
+ object = createEmpty();
1858
+ } else {
1859
+ if (typeof prototype != "object")
1860
+ throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
1861
+ var Type = function () {};
1862
+ Type.prototype = prototype;
1863
+ object = new Type();
1864
+ object.__proto__ = prototype;
1865
+ }
1866
+ if (properties !== void 0)
1867
+ Object.defineProperties(object, properties);
1868
+ return object;
1869
+ };
1870
+ }
1871
+
1872
+ function doesDefinePropertyWork(object) {
1873
+ try {
1874
+ Object.defineProperty(object, "sentinel", {});
1875
+ return "sentinel" in object;
1876
+ } catch (exception) {
1877
+ }
1878
+ }
1879
+ if (Object.defineProperty) {
1880
+ var definePropertyWorksOnObject = doesDefinePropertyWork({});
1881
+ var definePropertyWorksOnDom = typeof document == "undefined" ||
1882
+ doesDefinePropertyWork(document.createElement("div"));
1883
+ if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
1884
+ var definePropertyFallback = Object.defineProperty;
1885
+ }
1886
+ }
1887
+
1888
+ if (!Object.defineProperty || definePropertyFallback) {
1889
+ var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
1890
+ var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
1891
+ var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
1892
+ "on this javascript engine";
1893
+
1894
+ Object.defineProperty = function defineProperty(object, property, descriptor) {
1895
+ if ((typeof object != "object" && typeof object != "function") || object === null)
1896
+ throw new TypeError(ERR_NON_OBJECT_TARGET + object);
1897
+ if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
1898
+ throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
1899
+ if (definePropertyFallback) {
1900
+ try {
1901
+ return definePropertyFallback.call(Object, object, property, descriptor);
1902
+ } catch (exception) {
1903
+ }
1904
+ }
1905
+ if (owns(descriptor, "value")) {
1906
+
1907
+ if (supportsAccessors && (lookupGetter(object, property) ||
1908
+ lookupSetter(object, property)))
1909
+ {
1910
+ var prototype = object.__proto__;
1911
+ object.__proto__ = prototypeOfObject;
1912
+ delete object[property];
1913
+ object[property] = descriptor.value;
1914
+ object.__proto__ = prototype;
1915
+ } else {
1916
+ object[property] = descriptor.value;
1917
+ }
1918
+ } else {
1919
+ if (!supportsAccessors)
1920
+ throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
1921
+ if (owns(descriptor, "get"))
1922
+ defineGetter(object, property, descriptor.get);
1923
+ if (owns(descriptor, "set"))
1924
+ defineSetter(object, property, descriptor.set);
1925
+ }
1926
+
1927
+ return object;
1928
+ };
1929
+ }
1930
+ if (!Object.defineProperties) {
1931
+ Object.defineProperties = function defineProperties(object, properties) {
1932
+ for (var property in properties) {
1933
+ if (owns(properties, property))
1934
+ Object.defineProperty(object, property, properties[property]);
1935
+ }
1936
+ return object;
1937
+ };
1938
+ }
1939
+ if (!Object.seal) {
1940
+ Object.seal = function seal(object) {
1941
+ return object;
1942
+ };
1943
+ }
1944
+ if (!Object.freeze) {
1945
+ Object.freeze = function freeze(object) {
1946
+ return object;
1947
+ };
1948
+ }
1949
+ try {
1950
+ Object.freeze(function () {});
1951
+ } catch (exception) {
1952
+ Object.freeze = (function freeze(freezeObject) {
1953
+ return function freeze(object) {
1954
+ if (typeof object == "function") {
1955
+ return object;
1956
+ } else {
1957
+ return freezeObject(object);
1958
+ }
1959
+ };
1960
+ })(Object.freeze);
1961
+ }
1962
+ if (!Object.preventExtensions) {
1963
+ Object.preventExtensions = function preventExtensions(object) {
1964
+ return object;
1965
+ };
1966
+ }
1967
+ if (!Object.isSealed) {
1968
+ Object.isSealed = function isSealed(object) {
1969
+ return false;
1970
+ };
1971
+ }
1972
+ if (!Object.isFrozen) {
1973
+ Object.isFrozen = function isFrozen(object) {
1974
+ return false;
1975
+ };
1976
+ }
1977
+ if (!Object.isExtensible) {
1978
+ Object.isExtensible = function isExtensible(object) {
1979
+ if (Object(object) === object) {
1980
+ throw new TypeError(); // TODO message
1981
+ }
1982
+ var name = '';
1983
+ while (owns(object, name)) {
1984
+ name += '?';
1985
+ }
1986
+ object[name] = true;
1987
+ var returnValue = owns(object, name);
1988
+ delete object[name];
1989
+ return returnValue;
1990
+ };
1991
+ }
1992
+ if (!Object.keys) {
1993
+ var hasDontEnumBug = true,
1994
+ dontEnums = [
1995
+ "toString",
1996
+ "toLocaleString",
1997
+ "valueOf",
1998
+ "hasOwnProperty",
1999
+ "isPrototypeOf",
2000
+ "propertyIsEnumerable",
2001
+ "constructor"
2002
+ ],
2003
+ dontEnumsLength = dontEnums.length;
2004
+
2005
+ for (var key in {"toString": null}) {
2006
+ hasDontEnumBug = false;
2007
+ }
2008
+
2009
+ Object.keys = function keys(object) {
2010
+
2011
+ if (
2012
+ (typeof object != "object" && typeof object != "function") ||
2013
+ object === null
2014
+ ) {
2015
+ throw new TypeError("Object.keys called on a non-object");
2016
+ }
2017
+
2018
+ var keys = [];
2019
+ for (var name in object) {
2020
+ if (owns(object, name)) {
2021
+ keys.push(name);
2022
+ }
2023
+ }
2024
+
2025
+ if (hasDontEnumBug) {
2026
+ for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
2027
+ var dontEnum = dontEnums[i];
2028
+ if (owns(object, dontEnum)) {
2029
+ keys.push(dontEnum);
2030
+ }
2031
+ }
2032
+ }
2033
+ return keys;
2034
+ };
2035
+
2036
+ }
2037
+ if (!Date.now) {
2038
+ Date.now = function now() {
2039
+ return new Date().getTime();
2040
+ };
2041
+ }
2042
+ var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
2043
+ "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
2044
+ "\u2029\uFEFF";
2045
+ if (!String.prototype.trim || ws.trim()) {
2046
+ ws = "[" + ws + "]";
2047
+ var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
2048
+ trimEndRegexp = new RegExp(ws + ws + "*$");
2049
+ String.prototype.trim = function trim() {
2050
+ return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
2051
+ };
2052
+ }
2053
+
2054
+ function toInteger(n) {
2055
+ n = +n;
2056
+ if (n !== n) { // isNaN
2057
+ n = 0;
2058
+ } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
2059
+ n = (n > 0 || -1) * Math.floor(Math.abs(n));
2060
+ }
2061
+ return n;
2062
+ }
2063
+
2064
+ function isPrimitive(input) {
2065
+ var type = typeof input;
2066
+ return (
2067
+ input === null ||
2068
+ type === "undefined" ||
2069
+ type === "boolean" ||
2070
+ type === "number" ||
2071
+ type === "string"
2072
+ );
2073
+ }
2074
+
2075
+ function toPrimitive(input) {
2076
+ var val, valueOf, toString;
2077
+ if (isPrimitive(input)) {
2078
+ return input;
2079
+ }
2080
+ valueOf = input.valueOf;
2081
+ if (typeof valueOf === "function") {
2082
+ val = valueOf.call(input);
2083
+ if (isPrimitive(val)) {
2084
+ return val;
2085
+ }
2086
+ }
2087
+ toString = input.toString;
2088
+ if (typeof toString === "function") {
2089
+ val = toString.call(input);
2090
+ if (isPrimitive(val)) {
2091
+ return val;
2092
+ }
2093
+ }
2094
+ throw new TypeError();
2095
+ }
2096
+ var toObject = function (o) {
2097
+ if (o == null) { // this matches both null and undefined
2098
+ throw new TypeError("can't convert "+o+" to object");
2099
+ }
2100
+ return Object(o);
2101
+ };
2102
+
2103
+ });
2104
+ define("ace/mode/jsonata_worker",["require","exports","ace/lib/oop","ace/worker/mirror"], function(require, exports) {
2105
+ var oop = require("../lib/oop");
2106
+ var Mirror = require("../worker/mirror").Mirror;
2107
+
2108
+ var JSONataWorker = exports.JSONataWorker = function(sender) {
2109
+ Mirror.call(this, sender);
2110
+ this.setTimeout(200);
2111
+ };
2112
+
2113
+ oop.inherits(JSONataWorker, Mirror);
2114
+
2115
+ (function() {
2116
+
2117
+ this.onUpdate = function() {
2118
+ var value = this.doc.getValue();
2119
+ var errors = [];
2120
+ try {
2121
+ if (value) {
2122
+ jsonata(value);
2123
+ }
2124
+ } catch (e) {
2125
+ var pos = this.doc.indexToPosition(e.position-1);
2126
+ var msg = e.message;
2127
+ msg = msg.replace(/ at column \d+/,"");
2128
+ errors.push({
2129
+ row: pos.row,
2130
+ column: pos.column,
2131
+ text: msg,
2132
+ type: "error"
2133
+ });
2134
+ }
2135
+ this.sender.emit("annotate", errors);
2136
+ };
2137
+
2138
+ }).call(JSONataWorker.prototype);
2139
+
2140
+ });