'use strict'; var outvariant = require('outvariant'); var utils = require('./utils-5d2e6c36.js'); var EventEmitter = /** @class */ (function () { function EventEmitter() { this.listeners = {}; this.listenersCount = 0; this.channelId = Math.floor(Math.random() * 1000000); this.listeners = []; } EventEmitter.prototype.cleanup = function () { this.listeners = {}; this.listenersCount = 0; }; EventEmitter.prototype.dispatch = function (message) { Object.values(this.listeners).forEach(function (listener) { return listener(message); }); }; EventEmitter.prototype.listener = function (listener) { var _this = this; if (typeof listener !== "function") { return function () { return; }; } var listenerId = this.listenersCount; this.listeners[listenerId] = listener; this.listenersCount++; return function () { delete _this.listeners[listenerId]; }; }; return EventEmitter; }()); function isCommand(char) { return /[a-zA-Z.]/.test(char); } function isAlpha(char) { return /[a-zA-Z]/.test(char); } function isWhitespace(char) { return /\s/.test(char); } function isOperator(char) { return /[&|]/.test(char); } function isArgument(char) { return /-/.test(char); } function isString(char) { return /["']/.test(char); } function isEnvVar(char) { return isAlpha(char) && char === char.toUpperCase(); } var TokenType; (function (TokenType) { TokenType["OR"] = "OR"; TokenType["AND"] = "AND"; TokenType["PIPE"] = "PIPE"; TokenType["Command"] = "Command"; TokenType["Argument"] = "Argument"; TokenType["String"] = "String"; TokenType["EnvVar"] = "EnvVar"; })(TokenType || (TokenType = {})); var operators = new Map([ ["&&", { type: TokenType.AND }], ["||", { type: TokenType.OR }], ["|", { type: TokenType.PIPE }], ["-", { type: TokenType.Argument }], ]); function tokenize(input) { var current = 0; var tokens = []; function parseCommand() { var value = ""; while (isCommand(input[current]) && current < input.length) { value += input[current]; current++; } return { type: TokenType.Command, value: value }; } function parseOperator() { var value = ""; while (isOperator(input[current]) && current < input.length) { value += input[current]; current++; } return operators.get(value); } function parseArgument() { var value = ""; while ((isArgument(input[current]) || isAlpha(input[current])) && current < input.length) { value += input[current]; current++; } return { type: TokenType.Argument, value: value }; } function parseString() { var openCloseQuote = input[current]; var value = input[current]; current++; while (input[current] !== openCloseQuote && current < input.length) { value += input[current]; current++; } value += input[current]; current++; return { type: TokenType.String, value: value }; } function parseEnvVars() { var value = {}; var parseSingleEnv = function () { var key = ""; var pair = ""; while (input[current] !== "=" && current < input.length) { key += input[current]; current++; } // Skip equal if (input[current] === "=") { current++; } while (input[current] !== " " && current < input.length) { pair += input[current]; current++; } value[key] = pair; }; while (isEnvVar(input[current]) && current < input.length) { parseSingleEnv(); current++; } return { type: TokenType.EnvVar, value: value }; } while (current < input.length) { var currentChar = input[current]; if (isWhitespace(currentChar)) { current++; continue; } switch (true) { case isEnvVar(currentChar): tokens.push(parseEnvVars()); break; case isCommand(currentChar): tokens.push(parseCommand()); break; case isOperator(currentChar): tokens.push(parseOperator()); break; case isArgument(currentChar): tokens.push(parseArgument()); break; case isString(currentChar): tokens.push(parseString()); break; default: throw new Error("Unknown character: ".concat(currentChar)); } } return tokens; } var counter = 0; function generateRandomId() { var now = Date.now(); var randomNumber = Math.round(Math.random() * 10000); var count = (counter += 1); return (+"".concat(now).concat(randomNumber).concat(count)).toString(16); } var writeBuffer = function (content) { if (typeof content === "string") { return new TextEncoder().encode(content); } else { return content; } }; var readBuffer = function (content) { if (typeof content === "string") { return content; } else { return new TextDecoder().decode(content); } }; var fromBundlerFilesToFS = function (files) { return Object.entries(files).reduce(function (acc, _a) { var key = _a[0], value = _a[1]; acc[key] = writeBuffer(value.code); return acc; }, {}); }; /** * Figure out which script it must run to start a server */ var findStartScriptPackageJson = function (packageJson) { var scripts = {}; // TODO: support postinstall var possibleKeys = ["dev", "start"]; try { scripts = JSON.parse(packageJson).scripts; } catch (e) { throw utils.createError("Could not parse package.json file: " + e.message); } outvariant.invariant(scripts, "Failed to start. Please provide a `start` or `dev` script on the package.json"); var _loop_1 = function (index) { if (possibleKeys[index] in scripts) { var script = possibleKeys[index]; var candidate = scripts[script]; var env_1 = {}; var command_1 = ""; var args_1 = []; tokenize(candidate).forEach(function (item) { var commandNotFoundYet = command_1 === ""; if (item.type === TokenType.EnvVar) { env_1 = item.value; } if (item.type === TokenType.Command && commandNotFoundYet) { command_1 = item.value; } if (item.type === TokenType.Argument || (!commandNotFoundYet && item.type === TokenType.Command)) { args_1.push(item.value); } // TODO: support TokenType.AND, TokenType.OR, TokenType.PIPE }); return { value: [command_1, args_1, { env: env_1 }] }; } }; for (var index = 0; index < possibleKeys.length; index++) { var state_1 = _loop_1(index); if (typeof state_1 === "object") return state_1.value; } throw utils.createError("Failed to start. Please provide a `start` or `dev` script on the package.json"); }; var getMessageFromError = function (error) { if (typeof error === "string") return error; if (typeof error === "object" && "message" in error) { return error.message; } return utils.createError("The server could not be reached. Make sure that the node script is running and that a port has been started."); }; var consoleHook = "var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{};function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var e={},n={};!function(t){t.__esModule=!0,t.default=[\"log\",\"debug\",\"info\",\"warn\",\"error\",\"table\",\"clear\",\"time\",\"timeEnd\",\"count\",\"assert\",\"command\",\"result\"]}(n);var a,o={},i={};(a=i).__esModule=!0,a.default=function(){var t=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return t()+t()+\"-\"+t()+\"-\"+t()+\"-\"+t()+\"-\"+t()+\"-\"+Date.now()};var u={},s={__esModule:!0};s.update=s.state=void 0,s.update=function(t){s.state=t};var f={},c={};!function(r){var e=t&&t.__assign||function(){return e=Object.assign||function(t){for(var r,e=1,n=arguments.length;e-1){var n=this.circularCandidatesDescrs[e];return-1===n.refIdx&&(n.refIdx=n.parent?++this.circularRefCount:0),t._createRefMark(n.refIdx)}return null},t.prototype._handleValue=function(t,r,e){try{var n=t(),a=typeof n,o=\"object\"===a&&null!==n;if(o){var i=this._ensureCircularReference(n);if(i)return i}var u=this._findTransform(a,n);return u?this._applyTransform(n,r,e,u):o?this._handleObject(n,r,e):n}catch(t){try{return this._handleValue((function(){return t instanceof Error?t:new Error(t)}),r,e)}catch(t){return null}}},t.prototype._makeTransformsMap=function(){if(o){var t=new Map;return this.transforms.forEach((function(r){r.lookup&&t.set(r.lookup,r)})),t}},t.prototype._findTransform=function(t,r){if(o&&r&&r.constructor&&(null==(a=this.transformsMap.get(r.constructor))?void 0:a.shouldTransform(t,r)))return a;for(var e=0,n=this.transforms;e0&&(e[o.refIdx]=o.parent[o.key],o.parent[o.key]=t._createRefMark(o.refIdx))}return e},t}(),l=function(){function t(t,r){this.activeTransformsStack=[],this.visitedRefs=Object.create(null),this.references=t,this.transformMap=r}return t.prototype._handlePlainObject=function(t){var r=Object.create(null);for(var n in\"constructor\"in t&&(t.constructor&&\"string\"==typeof t.constructor.name||(t.constructor={name:\"Object\"})),t)t.hasOwnProperty(n)&&(this._handleValue(t[n],t,n),e.test(n)&&(r[n.substring(1)]=t[n],delete t[n]));for(var a in r)t[a]=r[a]},t.prototype._handleTransformedObject=function(t,e,n){var a=t[r],o=this.transformMap[a];if(!o)throw new Error(\"Can't find transform for \\\"\"+a+'\" type.');this.activeTransformsStack.push(t),this._handleValue(t.data,t,\"data\"),this.activeTransformsStack.pop(),e[n]=o.fromSerializable(t.data)},t.prototype._handleCircularSelfRefDuringTransform=function(t,r,e){var n=this.references;Object.defineProperty(r,e,{val:void 0,configurable:!0,enumerable:!0,get:function(){return void 0===this.val&&(this.val=n[t]),this.val},set:function(t){this.val=t}})},t.prototype._handleCircularRef=function(t,r,e){this.activeTransformsStack.includes(this.references[t])?this._handleCircularSelfRefDuringTransform(t,r,e):(this.visitedRefs[t]||(this.visitedRefs[t]=!0,this._handleValue(this.references[t],this.references,t)),r[e]=this.references[t])},t.prototype._handleValue=function(t,e,n){if(\"object\"==typeof t&&null!==t){var a=t[\"@r\"];if(void 0!==a)this._handleCircularRef(a,e,n);else if(t[r])this._handleTransformedObject(t,e,n);else if(Array.isArray(t))for(var o=0;o-1&&this.transforms.splice(a,1),delete this.transformsMap[n.type]}return this},t.prototype.encode=function(t){var r=new c(t,this.transforms).transform();return this.serializer.serialize(r)},t.prototype.decode=function(t){var r=this.serializer.deserialize(t);return new l(r,this.transformsMap).transform()},t}();t.default=p}(z);var E=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};S.__esModule=!0,S.Decode=P=S.Encode=void 0;var k=E(O),C=E(w),D=E(A),I=E(j),N=E(z),R=[D.default,C.default,k.default,I.default],x=new N.default;x.addTransforms(R);var P=S.Encode=function(t){return JSON.parse(x.encode(t))};S.Decode=function(t){return x.decode(JSON.stringify(t))},function(r){var e=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};r.__esModule=!0;var a=e(n),i=e(o),u=S;r.default=function(t,r,e){void 0===e&&(e=!0);for(var n=t,o={pointers:{},src:{npm:\"https://npmjs.com/package/console-feed\",github:\"https://github.com/samdenty99/console-feed\"}},s=function(t){var a=n[t];n[t]=function(){a.apply(this,arguments);var n=[].slice.call(arguments);setTimeout((function(){var a=i.default(t,n);if(a){var o=a;e&&(o=u.Encode(a)),r(o,a)}}))},o.pointers[t]=a},f=0,c=a.default;f