diff options
Diffstat (limited to 'Software/.jxbrowser-data/Cache/f_0000a7')
| -rw-r--r-- | Software/.jxbrowser-data/Cache/f_0000a7 | 1177 |
1 files changed, 0 insertions, 1177 deletions
diff --git a/Software/.jxbrowser-data/Cache/f_0000a7 b/Software/.jxbrowser-data/Cache/f_0000a7 deleted file mode 100644 index 53c131c08..000000000 --- a/Software/.jxbrowser-data/Cache/f_0000a7 +++ /dev/null @@ -1,1177 +0,0 @@ -/*global chrome*/ -/*global console*/ -/*global InstallTrigger*/ -/*global process*/ -/*global require*/ -/*global Q*/ -// use jsdoc agent.js to generate documentation -var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -}; -var TICloudAgent; -(function (TICloudAgent) { - // base error - var Error = (function () { - function Error(name, msg) { - if (name === void 0) { name = "Error"; } - if (msg === void 0) { msg = "ERROR"; } - this.name = name; - this.msg = msg; - } - return Error; - }()); - TICloudAgent.Error = Error; - var AlreadyInitialized = (function (_super) { - __extends(AlreadyInitialized, _super); - function AlreadyInitialized() { - return _super.call(this, "AlreadyInitialized", "AGENT_ALREADY_INITIALIZED") || this; - } - return AlreadyInitialized; - }(Error)); - TICloudAgent.AlreadyInitialized = AlreadyInitialized; - // Base for installation related errors. - var InstallError = (function (_super) { - __extends(InstallError, _super); - function InstallError() { - return _super.apply(this, arguments) || this; - } - return InstallError; - }(Error)); - TICloudAgent.InstallError = InstallError; - // Base error type that may require installation - var InvalidAgentVersion = (function (_super) { - __extends(InvalidAgentVersion, _super); - function InvalidAgentVersion() { - return _super.call(this, "InvalidAgentVersion", "Installed version is out of date") || this; - } - return InvalidAgentVersion; - }(Error)); - TICloudAgent.InvalidAgentVersion = InvalidAgentVersion; - var InvalidExtensionVersion = (function (_super) { - __extends(InvalidExtensionVersion, _super); - function InvalidExtensionVersion() { - return _super.call(this, "InvalidExtensionVersion", "Installed browser extension version is out of date") || this; - } - return InvalidExtensionVersion; - }(Error)); - TICloudAgent.InvalidExtensionVersion = InvalidExtensionVersion; - var MissingExtension = (function (_super) { - __extends(MissingExtension, _super); - function MissingExtension() { - return _super.call(this, "MissingExtension", "MISSING_EXTENTSION") || this; - } - return MissingExtension; - }(Error)); - TICloudAgent.MissingExtension = MissingExtension; - var AgentNotStarted = (function (_super) { - __extends(AgentNotStarted, _super); - function AgentNotStarted(msg) { - if (msg === void 0) { msg = "AGENT_NOT_STARTED"; } - return _super.call(this, "AgentNotStarted", msg) || this; - } - return AgentNotStarted; - }(Error)); - TICloudAgent.AgentNotStarted = AgentNotStarted; - // OS Enum - TICloudAgent.OS = { - WIN: "win", - LINUX: "linux", - OSX: "osx", - }; - // Browser Enum - TICloudAgent.BROWSER = { - CHROME: "chrome", - SAFARI: "safari", - FIREFOX: "firefox", - IE: "ie", - }; - function dynamicLink(url, newWindow) { - if (newWindow === void 0) { newWindow = false; } - var browser = getBrowser(); - var appendChild = browser === TICloudAgent.BROWSER.FIREFOX || browser === TICloudAgent.BROWSER.IE; - var a = document.createElement("a"); - a.href = url; - if (newWindow) { - a.target = "_blank"; - } - if (appendChild) { - document.body.appendChild(a); - } - a.click(); - } - // utility function to figure out the browser - function getBrowser() { - var browser = TICloudAgent.BROWSER.CHROME; - // chrome claims to be safari and chrome.. so special care is needed - if (navigator.userAgent.indexOf("Safari") !== -1 && navigator.userAgent.indexOf("Chrome") === -1) { - browser = TICloudAgent.BROWSER.SAFARI; - } - else if (navigator.userAgent.indexOf("Firefox") !== -1) { - browser = TICloudAgent.BROWSER.FIREFOX; - } - else if (!!navigator.userAgent.match(/Trident.*rv\:11\./)) { - browser = TICloudAgent.BROWSER.IE; - } - return browser; - } - TICloudAgent.getBrowser = getBrowser; - // utility function to figure out OS - function getOS() { - // default to linux because it is not always possible to tell it from - // the - // appVersion - var os = TICloudAgent.OS.LINUX; - if (navigator.appVersion.indexOf("Mac") !== -1) { - os = TICloudAgent.OS.OSX; - } - if (navigator.appVersion.indexOf("Win") !== -1) { - os = TICloudAgent.OS.WIN; - } - return os; - } - TICloudAgent.getOS = getOS; - ; - function assertNever(x) { - throw new Error("Unexpected object: " + x); - } - function getOSFolderName() { - var os = getOS(); - switch (os) { - case "win": return "win32"; - case "osx": return "mac"; - case "linux": return "linux"; - default: return assertNever(os); - } - } - var hostInfo; - (function (hostInfo) { - // Host and port of the server - var protocol = window.location.protocol; - var host = window.location.hostname; - var port = window.location.port ? ":" + window.location.port : ""; - // override - may be useful for testing - // explicitly check for undefined, empty strings are valid overrides - var hackOfWindowForTesting = window; - if (typeof hackOfWindowForTesting.TI_CLOUD_AGENT_HOST !== "undefined") { - host = hackOfWindowForTesting.TI_CLOUD_AGENT_HOST; - } - if (typeof hackOfWindowForTesting.TI_CLOUD_AGENT_PORT !== "undefined") { - port = hackOfWindowForTesting.TI_CLOUD_AGENT_PORT; - } - function tiCloudAgentServer() { - return protocol + "//" + host + port + "/ticloudagent"; - } - hostInfo.tiCloudAgentServer = tiCloudAgentServer; - function isProduction() { - return (host === "dev.ti.com"); - } - hostInfo.isProduction = isProduction; - })(hostInfo || (hostInfo = {})); - function isOfflineConfig(agentConfig) { - return undefined !== agentConfig.offline; - } - function isDesktopConfig(agentConfig) { - return undefined !== agentConfig.agentPort; - } - var loadAgentConfig; - if (typeof process === "undefined") { - loadAgentConfig = function () { - var deferred = Q.defer(); - var xmlhttp = new XMLHttpRequest(); - var url = hostInfo.tiCloudAgentServer() + "/agent_config.json"; - xmlhttp.onreadystatechange = function () { - if (xmlhttp.readyState === 4) { - if (xmlhttp.status === 200) { - deferred.resolve(JSON.parse(xmlhttp.responseText)); - } - else { - deferred.reject(xmlhttp.statusText); - } - } - }; - xmlhttp.open("GET", url); // sync - xmlhttp.send(); - return deferred.promise; - }; - } - else { - loadAgentConfig = function () { - var deferred = Q.defer(); - try { - // In the node case, agent_config.json contains the path to - // ticloudagent, and not version information - var path = require("path"); - var agentConfigData = require(path.resolve("../ticloudagent/server/public/agent_config.json")); - deferred.resolve(agentConfigData); - } - catch (e) { - console.warn("No agent_config.json found, switching to default config"); - deferred.resolve(); - } - return deferred.promise; - }; - } - var Extension = (function () { - function Extension() { - } - Extension.prototype.isInstalled = function () { - var extDomItem = document.getElementById("com.ti.TICloudAgent.Bridge"); - return extDomItem ? true : false; - }; - Extension.prototype.getVersion = function () { - var extDomItem = document.getElementById("com.ti.TICloudAgent.Bridge"); - return extDomItem.title; - }; - return Extension; - }()); - // chrome ext specific - var ChromeExt = (function (_super) { - __extends(ChromeExt, _super); - function ChromeExt() { - var _this = _super.apply(this, arguments) || this; - _this.ID = "pfillhniocmjcapelhjcianojmoidjdk"; - _this.port = null; - _this.lastRegLisenter = null; - return _this; - } - ChromeExt.prototype.init = function () { - var _this = this; - // connect to app if possible - if (chrome.runtime && chrome.runtime.connect) { - this.port = chrome.runtime.connect(this.ID); - this.port.onDisconnect.addListener(function () { - _this.port = null; - }); - } - }; - ChromeExt.prototype.postMessage = function (msgObj) { - this.port.postMessage(msgObj); - }; - ChromeExt.prototype.regOnMessage = function (listener) { - this.lastRegLisenter = listener; - this.port.onMessage.addListener(this.lastRegLisenter); - }; - ChromeExt.prototype.removeLastOnMessage = function () { - this.port.onMessage.removeListener(this.lastRegLisenter); - }; - ChromeExt.prototype.install = function () { - var failure = function (msg) { - console.error("Extension Installation Failed: " + msg); - }; - var url = "https://chrome.google.com/webstore/detail/" + this.ID; - // scheme is very delicate make sure to test all the use cases if you make changes - if (hostInfo.isProduction()) { - try { - // inline- install only works for production - chrome.webstore.install(url, function () { }, failure); - } - catch (e) { - dynamicLink(url, true); // do non inline install instead - } - } - else { - dynamicLink(url, true); // do non inline install instead - } - }; - return ChromeExt; - }(Extension)); - var DOMEventExt = (function (_super) { - __extends(DOMEventExt, _super); - function DOMEventExt() { - var _this = _super.apply(this, arguments) || this; - _this.TO_APP_MSG_STR = "ti-cloud-agent-msg-app"; - _this.TO_EXT_MSG_STR = "ti-cloud-agent-msg-ext"; - _this.lastRegListener = null; - return _this; - } - DOMEventExt.prototype.postMessage = function (msgObj) { - var event = window.document.createEvent("CustomEvent"); - event.initCustomEvent(this.TO_EXT_MSG_STR, true, true, msgObj); - window.dispatchEvent(event); - }; - DOMEventExt.prototype.regOnMessage = function (listener) { - this.lastRegListener = function (event) { - listener(event.detail); - }; - window.addEventListener(this.TO_APP_MSG_STR, this.lastRegListener, false); - }; - DOMEventExt.prototype.removeLastOnMessage = function () { - window.removeEventListener(this.TO_APP_MSG_STR, this.lastRegListener, false); - }; - return DOMEventExt; - }(Extension)); - var FirefoxExt = (function (_super) { - __extends(FirefoxExt, _super); - function FirefoxExt() { - return _super.apply(this, arguments) || this; - } - FirefoxExt.prototype.init = function (newconfig) { - this.config = newconfig; - }; - FirefoxExt.prototype.install = function () { - var extUrl = hostInfo.tiCloudAgentServer() + "/getFile/" + getOS() + "/ticloudagent/extensions/"; - extUrl += "firefox/ticloudagentbridge.xpi/LATEST"; - var params = { - TICloudAgentXPI: { - URL: extUrl, - Hash: this.config.hash, - toString: function () { - return extUrl; - }, - }, - }; - InstallTrigger.install(params); - }; - return FirefoxExt; - }(DOMEventExt)); - var SafariExt = (function (_super) { - __extends(SafariExt, _super); - function SafariExt() { - return _super.apply(this, arguments) || this; - } - SafariExt.prototype.init = function () { - }; - SafariExt.prototype.install = function () { - var extUrl = hostInfo.tiCloudAgentServer() + "/getFile/" + getOS() + "/ticloudagent/extensions/"; - extUrl += "safari/ticloudagentbridge.safariextz/LATEST"; - dynamicLink(extUrl, false); - }; - return SafariExt; - }(DOMEventExt)); - function createExtension(browser) { - switch (browser) { - case "chrome": return new ChromeExt(); - case "firefox": return new FirefoxExt(); - case "safari": return new SafariExt(); - default: return null; - } - } - // for firefox and safari use the firefoxExt object. - var browserExt = createExtension(getBrowser()); - // The socket abstraction for communicating with the host agent - // tslint:disable-next-line variable-name - it's a class - var Socket = WebSocket; - function launchHostApp(agentConfig) { - // abstraction for interfacting with the host app - function initExtensionBased(extAgentConfig, browser) { - // message types for the init TI cloud agent - var EXT_MSG_TYPES = { - INIT: "INIT_EXTENTION", - INIT_COMPLETE: "INIT_EXTENTION_COMPLETE", - }; - var POST_MESSAGE_TYPES = { - CREATE: "CREATE", - CLOSE: "CLOSE", - SEND: "SEND", - }; - var ON_MESSAGE_TYPES = { - ON_ERROR: "ON_ERROR", - ON_CLOSE: "ON_CLOSE", - ON_MESSAGE: "ON_MESSAGE", - ON_OPEN: "ON_OPEN", - }; - var typeToFunc = { - ON_ERROR: "onerror", - ON_CLOSE: "onclose", - ON_MESSAGE: "onmessage", - ON_OPEN: "onopen", - }; - var SocketToExtension = (function () { - function SocketToExtension(url, subProtocol) { - this.url = url; - this.subProtocol = subProtocol; - this.key = SocketToExtension.id++; - SocketToExtension.socketCache[this.key] = this; - browserExt.postMessage({ - key: this.key, - url: this.url, - subProtocol: this.subProtocol, - type: POST_MESSAGE_TYPES.CREATE, - }); - } - SocketToExtension.dispatchSocketEvent = function (msgObj) { - var funcName = typeToFunc[msgObj.type]; - var key = msgObj.key; - var socket = SocketToExtension.socketCache[key]; - if (socket && socket[funcName]) { - var func = socket[funcName]; - func.apply(socket, [msgObj.msgEvt]); - } - if (msgObj.type === ON_MESSAGE_TYPES.ON_CLOSE) { - if (SocketToExtension.socketCache[key]) { - delete SocketToExtension.socketCache[key]; - } - } - }; - SocketToExtension.prototype.close = function () { - // Do not rely on the extension sending us a close event. Instead, - // ignore all future events by removing ourself from the cache, and - // then send our own close event. - // See TICLD-1664 - delete SocketToExtension.socketCache[this.key]; - browserExt.postMessage({ - key: this.key, - type: POST_MESSAGE_TYPES.CLOSE, - }); - if (this.onclose) { - this.onclose(); - } - }; - SocketToExtension.prototype.send = function (data) { - browserExt.postMessage({ - key: this.key, - data: data, - type: POST_MESSAGE_TYPES.SEND, - }); - }; - return SocketToExtension; - }()); - SocketToExtension.id = 0; - SocketToExtension.socketCache = {}; - var deferred = Q.defer(); - try { - Socket = SocketToExtension; - var errors_1 = []; // list of issues while starting up - browserExt.init(extAgentConfig[browser]); - // browser ext is not installed return error - // we can't do anything else - if (!browserExt.isInstalled()) { - errors_1.push(new MissingExtension()); - deferred.reject(errors_1); - return deferred.promise; - } - var EXT_VERSION = extAgentConfig[browser].version; - // if the browser ext verision does not match, we can still try to start the agent - if (browserExt.getVersion() !== EXT_VERSION) { - errors_1.push(new InvalidExtensionVersion()); - } - function initEventListener(msgObj) { - if (msgObj.type === EXT_MSG_TYPES.INIT_COMPLETE) { - var cleanup = null; - browserExt.removeLastOnMessage(); // stop listening to the init event - if (msgObj.data.error) { - // there was an issues starting the agent - errors_1.push(new AgentNotStarted(msgObj.data.error)); - } - else if (msgObj.data.version !== extAgentConfig.installer.version) { - // we started fine, but the version was invalid - errors_1.push(new InvalidAgentVersion()); - // The agent will remain running until something - // connects to it. To prevent that, we'll connect - // but immediately close the agent - browserExt.regOnMessage(SocketToExtension.dispatchSocketEvent); - cleanup = createClientModule(msgObj.data.port) - .then(function (agent) { return agent.close(); }); - } - if (errors_1.length === 0) { - // expect all other messages to be for the - // socket interface - browserExt.regOnMessage(SocketToExtension.dispatchSocketEvent); - deferred.resolve(msgObj.data); - } - else { - if (cleanup) { - cleanup.finally(function () { return deferred.reject(errors_1); }); - } - else { - deferred.reject(errors_1); - } - } - } - else { - console.error("UNEXPECTED MESSAGE TYPE: " + msgObj.type); - } - } - // set up listeners - browserExt.regOnMessage(initEventListener); - // send message to init - browserExt.postMessage({ type: EXT_MSG_TYPES.INIT }); - } - catch (e) { - deferred.reject(e); - } - return deferred.promise; - } - function initIE() { - var deferred = Q.defer(); - var plugin = window.TICloudAgent_HACK.plugin; - var errors = []; - if (plugin && plugin.start) { - var initParamsRaw = plugin.start(); - var initParams = JSON.parse(initParamsRaw); - if (initParams.error) { - errors.push(new AgentNotStarted(initParams.error)); - deferred.reject(errors); - } - else { - deferred.resolve(initParams); - } - } - else { - errors.push(new MissingExtension()); - deferred.reject(errors); - } - return deferred.promise; - } - function initGUIComposer() { - var osFolderName = getOSFolderName(); - var isWin = /^win/.test(process.platform); - var ext = isWin ? ".bat" : ".sh"; - var spawn = require("child_process").spawn; - var fileToExec = "ticloudagent" + ext; - var pathObj = require("path"); - var fs = require("fs"); - var workingDir = pathObj.dirname(process.cwd()); - // folder structure is <install directory>/.../<app name> - // need <install directory>/win32/TICloudAgent - // start by going up to parent folder - var subdirectoryLimit = 3; - workingDir = pathObj.join(workingDir, osFolderName); - do { - workingDir = pathObj.join(workingDir, "../.."); - var dirName = "" + workingDir.toLowerCase(); - // if current folder name doesn't already end in the OS name, add it - if ((dirName.indexOf(osFolderName, dirName.length - osFolderName.length) === -1)) { - workingDir = pathObj.join(workingDir, osFolderName); - } - } while (!fs.existsSync(workingDir) && subdirectoryLimit-- > 0); - workingDir = pathObj.join(workingDir, "TICloudAgent"); - fileToExec = pathObj.join(workingDir, fileToExec); - var initParams = null; - var errors = []; - var deferred = Q.defer(); - var lp = spawn(fileToExec, ["not_chrome"], { cwd: workingDir }); - lp.stdout.on("data", function (data) { - if (initParams) { - throw new Error("AREADY INITIALIZED"); - } - initParams = JSON.parse(data.toString()); - deferred.resolve(initParams); - }); - lp.stderr.on("data", function (data) { - errors.push(new AgentNotStarted(data.toString())); - deferred.reject(errors); - }); - return deferred.promise; - } - function initGenericNW(configFile) { - var path = require("path"); - var hostAgentStart = require(path.resolve(configFile.offline.hostAgentPath)).start; - return hostAgentStart(); - } - if (!agentConfig) { - return initGUIComposer(); - } - else if (isOfflineConfig(agentConfig)) { - return initGenericNW(agentConfig); - } - else { - // Running in a browser of some kind - if (isDesktopConfig(agentConfig)) { - // Agent already launched, check for error, then return port - if (agentConfig.error) { - return Q.reject(agentConfig.error); - } - return Q({ port: agentConfig.agentPort }); - } - else { - var browser = getBrowser(); - switch (browser) { - case "ie": return initIE(); - case "chrome": - case "firefox": - case "safari": return initExtensionBased(agentConfig, browser); - default: return assertNever(browser); - } - } - } - } - var InstallWizard = (function () { - function InstallWizard(errors, connectionID) { - this.title = "TI Cloud Agent Setup"; - this.detailsLink = { - text: "What's this?", - url: "http://processors.wiki.ti.com/index.php/TI_Cloud_Agent#What_is_it.3F", - }; - this.helpLink = { - text: "Help. I already did this", - url: "http://processors.wiki.ti.com/index.php/TI_Cloud_Agent#Troubleshooting", - }; - this.finishStep = { - description: "Refresh the current browser page", - action: { - text: "$Refresh$ Page", - handler: function () { - window.location.reload(); - }, - }, - }; - this.initialMessage = { - description: "Install TI Cloud Agent to enable flashing.", - action: { - text: "Install TI Cloud Agent to enable flashing.", - }, - }; - this.description = InstallWizard.getDescriptionText(errors); - this.steps = InstallWizard.getSteps(errors, connectionID); - } - InstallWizard.getDescriptionText = function (errors) { - var wizardDesc = "Obsolete TI Cloud Agent installation found. An update is required."; - for (var _i = 0, errors_2 = errors; _i < errors_2.length; _i++) { - var error = errors_2[_i]; - if (error instanceof MissingExtension) { - wizardDesc = "Hardware interaction requires additional one time set up."; - break; - } - if (error instanceof AgentNotStarted) { - wizardDesc = "Could not launch TI Cloud Agent : " + error.msg + " ."; - } - } - wizardDesc += " Please perform the actions listed below and try your operation again."; - return wizardDesc; - }; - InstallWizard.createInstallAgentStep = function (connectionID, error) { - var actionText = "$Download$ and install the TI Cloud Agent Application"; - if (error instanceof InvalidAgentVersion) { - actionText = "$Download$ and install a new version of the TI Cloud Agent Application"; - } - var step = { - description: "Download and install the TI Cloud Agent host application.", - action: { - text: actionText, - handler: function () { - var url = hostInfo.tiCloudAgentServer() + "/getInstaller" + "?os=" + getOS(); - if (undefined !== connectionID) { - url += "&connectionID=" + connectionID; - } - dynamicLink(url); - }, - }, - }; - return step; - }; - InstallWizard.getSteps = function (errors, connectionID) { - var stepInstallExt = { - description: "Install the TI Cloud Agent browser extension.", - action: { - text: "$Install$ browser extension", - handler: function () { browserExt.install(); }, - }, - }; - var steps = []; - var browser = getBrowser(); - for (var _i = 0, errors_3 = errors; _i < errors_3.length; _i++) { - var error = errors_3[_i]; - // on I.E there is no inline extension install.. its all done by the host app installer - if (browser === TICloudAgent.BROWSER.IE && error instanceof MissingExtension) { - steps.push(InstallWizard.createInstallAgentStep(connectionID)); - } - else if (error instanceof MissingExtension) { - steps.push(stepInstallExt); - steps.push(InstallWizard.createInstallAgentStep(connectionID)); - } - else if (error instanceof AgentNotStarted || error instanceof InvalidAgentVersion) { - steps.push(InstallWizard.createInstallAgentStep(connectionID, error)); - } - else if (error instanceof InvalidExtensionVersion) { - steps.push(stepInstallExt); - } - } - // safari. we also need to restart the browser - if (browser === TICloudAgent.BROWSER.SAFARI) { - steps.push({ - description: "Restart the browser", - action: { - text: "Restart the browser", - }, - }); - } - return steps; - }; - return InstallWizard; - }()); - // make it async, to be consistent with all other API's - // We have to keep this poor name for now due to it's use throughout - // tslint:disable-next-line variable-name - TICloudAgent.Install = { - getInstallWizard: function (params) { - var deferred = Q.defer(); - deferred.resolve(new InstallWizard(params.errors, params.connectionID)); - return deferred.promise; - }, - }; - // create the client side module - function createClientModule(port, subProtocol) { - // add events related functions - var eventListeners = {}; - var moduleObj = { - addListener: function (type, listener) { - if (!eventListeners[type]) { - eventListeners[type] = []; - } - eventListeners[type].push(listener); - }, - removeListener: function (type, listener) { - if (eventListeners[type]) { - var typeListeners = eventListeners[type]; - // tslint:disable-next-line prefer-for-of - index is needed - for (var i = 0; i < typeListeners.length; i++) { - if (typeListeners[i] === listener) { - // don't remove it, just null it out - // if we remove it and the remove was called from a dispatch - // it could impact the dispatch because the length of eventsListeners will change - typeListeners[i] = null; - break; - } - } - } - }, - getSubModule: null, - close: null, - }; - var internalModuleObj = { - createSubModule: null, - listCommands: null, - }; - // command dispatch module - function createCommandDispatch() { - var commandID = 1; // start from 1 ( 0 could be mistaken for false, in certain places) - var pendingCommands = {}; - var rejectMsg = { message: "Module Closed" }; - var commandDispatchObj = { - exec: function (ws, commandName, data) { - var defCommand = Q.defer(); - var obj = { - command: commandName, - id: commandID++, - data: data, - }; - pendingCommands[obj.id] = defCommand; - var message = JSON.stringify(obj); - try { - ws.send(message); - } - catch (e) { - defCommand.reject(rejectMsg); - } - return defCommand.promise; - }, - ret: function (retObj) { - var response = retObj.response; - var error = retObj.error; - var data = retObj.data; - // it's should only be one of these - var id = response || error; - var defCommand = pendingCommands[id]; - if (defCommand) { - if (response) { - defCommand.resolve(data); - } - else { - defCommand.reject(data); - } - // delete it instaed of nulling so the map doesn't grow too large over time - delete pendingCommands[id]; - } - else { - console.error("commandDispatch : ret , Error, no promise found corresponding to id : " + id); - } - }, - }; - function cleanUp() { - // reject all outstanding requests - for (var key in pendingCommands) { - if (pendingCommands.hasOwnProperty(key)) { - var commandPromise = pendingCommands[key]; - commandPromise.reject(rejectMsg); - } - } - pendingCommands = {}; - // replace exec and ret to reject and ignore incoming requests - commandDispatchObj.exec = function () { - var defCommand = Q.defer(); - defCommand.reject(rejectMsg); - return defCommand.promise; - }; - commandDispatchObj.ret = function () { - // do nothing - return; - }; - } - moduleObj.addListener("close", cleanUp); - return commandDispatchObj; - } - var commandDispatch = createCommandDispatch(); - var eventsDispatch = { - dispatch: function (listeners, retObj) { - var typeListeners = listeners[retObj.event]; - if (typeListeners) { - for (var _i = 0, typeListeners_1 = typeListeners; _i < typeListeners_1.length; _i++) { - var listener = typeListeners_1[_i]; - if (listener) { - listener(retObj.data); - } - } - } - }, - }; - function socketUrl() { - return "ws://127.0.0.1:" + port; - } - var subModulePromises = {}; - moduleObj.getSubModule = function (subModuleName) { - var subModulePromise = subModulePromises[subModuleName]; - if (!subModulePromise) { - subModulePromise = internalModuleObj.createSubModule(subModuleName) - .then(function (data) { - return createClientModule(data.port, data.subProtocol); - }) - .then(function (subModule) { - // lets register for an onclose and onerror events to clean ourselves up - function cleanUp() { - subModulePromises[subModuleName] = null; - } - subModule.addListener("close", cleanUp); - return subModule; // pass the module down the chain - }) - .catch(function (err) { - subModulePromises[subModuleName] = null; - throw err; - }); - subModulePromises[subModuleName] = subModulePromise; - } - return subModulePromise; - }; - function createCommand(ws, fullCommandName) { - // add namespace - var commandNameParts = fullCommandName.split("."); - // everything up to the last part is part of the namespace - var parentObj = moduleObj; - // keep track of nested namespaces - var parentNamespace = ""; - function createAddListener(eventTypePrefix) { - return function (type, listener) { - // add name spaces - type = eventTypePrefix + type; - moduleObj.addListener(type, listener); - }; - } - function createRemoveListener(eventTypePrefix) { - return function (type, listener) { - // add name spaces - type = eventTypePrefix + type; - moduleObj.removeListener(type, listener); - }; - } - for (var i = 0; i < commandNameParts.length - 1; i++) { - var currentNamespacePart = commandNameParts[i]; - parentNamespace += commandNameParts[i]; - var newObj = parentObj[currentNamespacePart]; - if (!newObj) { - // lets create it - var eventTypePrefix = parentNamespace + "."; - newObj = { - addListener: createAddListener(eventTypePrefix), - removeListener: createRemoveListener(eventTypePrefix), - }; - } - // it becomes the new parent - parentObj[currentNamespacePart] = newObj; - parentObj = newObj; - parentNamespace = parentNamespace + "."; - } - var commandName = commandNameParts[commandNameParts.length - 1]; - if ("createSubModule" === fullCommandName || "listCommands" === fullCommandName) { - parentObj = internalModuleObj; - } - function theCommand() { - var data = Array.prototype.slice.call(arguments); - return commandDispatch.exec(ws, fullCommandName, data); - } - parentObj[commandName] = theCommand; - } - var setUpDef = Q.defer(); - var ws = subProtocol ? new Socket(socketUrl(), subProtocol) : new Socket(socketUrl()); - function pageUnloadHandler() { - ws.close(); - } - ws.onclose = function () { - setUpDef.reject("socket closed"); - eventsDispatch.dispatch(eventListeners, { - event: "close", - data: { - message: "socket closed", - }, - }); - // remove the listener - window.removeEventListener("unload", pageUnloadHandler); - }; - ws.onerror = function () { - setUpDef.reject("socket error"); - eventsDispatch.dispatch(eventListeners, { - event: "error", - data: { - message: "socket error", - }, - }); - }; - ws.onopen = function () { - try { - // close the socket before unloading to clean up agent - window.addEventListener("unload", pageUnloadHandler); - // set up command and event return messages - ws.onmessage = function (msgEvt) { - var retObj = JSON.parse(msgEvt.data); - if (retObj.event) { - eventsDispatch.dispatch(eventListeners, retObj); - } - else { - commandDispatch.ret(retObj); - } - }; - moduleObj.close = function () { - ws.close(); - return Q.when(); - }; - createCommand(ws, "listCommands"); // everymodule should have a listCommands command - internalModuleObj.listCommands() - .then(function (dataObj) { - // create commands - for (var _i = 0, _a = dataObj.commands; _i < _a.length; _i++) { - var command = _a[_i]; - if (command !== "listCommands") { - createCommand(ws, command); - } - } - setUpDef.resolve(moduleObj); - }) - .catch(function (err) { return setUpDef.reject(err); }); - } - catch (err) { - setUpDef.reject(err); - } - }; - return setUpDef.promise; - } - var cachedInit; - function Init() { - if (!cachedInit) { - cachedInit = loadAgentConfig() - .then(function (agentConfig) { - return launchHostApp(agentConfig); - }) - .then(function (initParams) { - return createClientModule(initParams.port); - }) - .then(function (agent) { - // Post creation configuration - return agent.addConfigProperty("cloudAgentInstallerServerURL", hostInfo.tiCloudAgentServer()) - .then(function () { - return agent; - }); - }); - } - return cachedInit; - } - TICloudAgent.Init = Init; - // hack API to figure out weather a target only supports flashing. - // it is the only sync api we have - function isFlashOnly(targetName) { - return targetName.match(".*MSP430.*G2.*") && getOS() !== TICloudAgent.OS.WIN; - } - TICloudAgent.isFlashOnly = isFlashOnly; - var Util; - (function (Util) { - function encodeAsBase64(data) { - var def = Q.defer(); - if (data instanceof Blob) { - // encode data as base 64string - var reader_1 = new FileReader(); - reader_1.readAsDataURL(data); - reader_1.onloadend = function () { - def.resolve(reader_1.result.split(",")[1]); - }; - } - else { - def.resolve(btoa(data)); - } - return def.promise; - } - Util.encodeAsBase64 = encodeAsBase64; - var keywords = ["Texas Instruments", "Texas_Instruments", "MSP", "FTDI"]; - // iterate over all ports and find the ones with matching key words - function findInterestingPorts(ports) { - var foundPorts = []; - for (var _i = 0, ports_1 = ports; _i < ports_1.length; _i++) { - var port = ports_1[_i]; - for (var _a = 0, keywords_1 = keywords; _a < keywords_1.length; _a++) { - var keyword = keywords_1[_a]; - if (port.displayName.indexOf(keyword) !== -1) { - foundPorts.push(port); - break; - } - } - } - return foundPorts; - } - ; - // select the port with match pnpId suffix - function selectWithMatchingPnpSuffixWinAndLinux(ports, suffix) { - var foundPorts = findInterestingPorts(ports); - var found = false; - // no interesting ports found - if (foundPorts.length === 0 && ports.length > 0) { - ports[0].selected = true; - } - else { - // try to find one with the matching suffix - for (var _i = 0, foundPorts_1 = foundPorts; _i < foundPorts_1.length; _i++) { - var port = foundPorts_1[_i]; - if (port.pnpId.indexOf(suffix, port.pnpId.length - suffix.length) !== -1) { - port.selected = true; - found = true; - break; - } - } - // we still haven't found one, default to the first found port - if (!found) { - foundPorts[0].selected = true; - found = true; - } - } - return found; - } - function selectDefaultWinAndLinux(ports) { - return selectWithMatchingPnpSuffixWinAndLinux(ports, "02"); - } - function selectMSP432WinAndLinux(ports) { - return selectWithMatchingPnpSuffixWinAndLinux(ports, "00"); - } - function selectMSP432OSX(ports) { - var foundPorts = findInterestingPorts(ports); - var found = false; - if (foundPorts.length > 0) { - foundPorts[0].selected = true; - found = true; - } - return found; - } - function selectDefaultOSX(ports) { - var found = false; - for (var _i = 0, ports_2 = ports; _i < ports_2.length; _i++) { - var port = ports_2[_i]; - if (port.comName.indexOf("/dev/cu.usb") !== -1 && port.manufacturer === "") { - found = true; - port.selected = found; - } - if (found) { - break; - } - } - if (!found && ports.length > 0) { - ports[0].selected = true; - } - return found; - } - function selectDefaultPort(params) { - var ports = params.ports; - var targetName = params.targetName ? params.targetName : ""; - var selectFunc = (getOS() === TICloudAgent.OS.OSX) ? selectDefaultOSX : selectDefaultWinAndLinux; - // 432 and f128 follow the same rules - if (targetName.indexOf("432") !== -1 || targetName.indexOf("cc2650f128") !== -1) { - selectFunc = (getOS() === TICloudAgent.OS.OSX) ? selectMSP432OSX : selectMSP432WinAndLinux; - } - if (targetName.indexOf("MSP430G2") !== -1 && getOS() === TICloudAgent.OS.OSX) { - selectFunc = selectMSP432OSX; - } - var found = selectFunc(ports); - return Q(found); - } - Util.selectDefaultPort = selectDefaultPort; - var baudRates = [{ - rate: "50", - selected: false, - }, { - rate: "75", - selected: false, - }, { - rate: "110", - selected: false, - }, { - rate: "134", - selected: false, - }, { - rate: "150", - selected: false, - }, { - rate: "300", - selected: false, - }, { - rate: "600", - selected: false, - }, { - rate: "1200", - selected: false, - }, { - rate: "1800", - selected: false, - }, { - rate: "2400", - selected: false, - }, { - rate: "4800", - selected: false, - }, { - rate: "7200", - selected: false, - }, { - rate: "9600", - selected: true, - }, { - rate: "14400", - selected: false, - }, { - rate: "19200", - selected: false, - }, { - rate: "28800", - selected: false, - }, { - rate: "38400", - selected: false, - }, { - rate: "56000", - selected: false, - }, { - rate: "57600", - selected: false, - }, { - rate: "115200", - selected: false, - }, { - rate: "128000", - selected: false, - }, { - rate: "153600", - selected: false, - }, { - rate: "230400", - selected: false, - }, { - rate: "256000", - selected: false, - }, { - rate: "460800", - selected: false, - }, { - rate: "921600", - selected: false, - }]; - function getBaudRates() { - return Q(baudRates); - } - Util.getBaudRates = getBaudRates; - })(Util = TICloudAgent.Util || (TICloudAgent.Util = {})); -})(TICloudAgent || (TICloudAgent = {})); |
