From dfc8554352d93054b4daa1616430def04d8992ac Mon Sep 17 00:00:00 2001 From: tripodsgames Date: Tue, 14 Sep 2021 21:29:17 -0300 Subject: [PATCH] Update gitignore. --- .gitignore | 1 + node-ipc.cjs | 1269 -------------------------------------------------- 2 files changed, 1 insertion(+), 1269 deletions(-) delete mode 100644 node-ipc.cjs diff --git a/.gitignore b/.gitignore index 1ceac24..2a9d810 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /node_modules/ /nbproject npm-debug.log +node-ipc.cjs \ No newline at end of file diff --git a/node-ipc.cjs b/node-ipc.cjs deleted file mode 100644 index 1dd91b2..0000000 --- a/node-ipc.cjs +++ /dev/null @@ -1,1269 +0,0 @@ -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; -var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); -var __require = typeof require !== "undefined" ? require : (x) => { - throw new Error('Dynamic require of "' + x + '" is not supported'); -}; -var __commonJS = (cb, mod) => function __require2() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __export = (target, all) => { - __markAsModule(target); - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __reExport = (target, module2, desc) => { - if (module2 && typeof module2 === "object" || typeof module2 === "function") { - for (let key of __getOwnPropNames(module2)) - if (!__hasOwnProp.call(target, key) && key !== "default") - __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); - } - return target; -}; -var __toModule = (module2) => { - return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); -}; -var __publicField = (obj, key, value) => { - __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); - return value; -}; -var __accessCheck = (obj, member, msg) => { - if (!member.has(obj)) - throw TypeError("Cannot " + msg); -}; -var __privateGet = (obj, member, getter) => { - __accessCheck(obj, member, "read from private field"); - return getter ? getter.call(obj) : member.get(obj); -}; -var __privateAdd = (obj, member, value) => { - if (member.has(obj)) - throw TypeError("Cannot add the same private member more than once"); - member instanceof WeakSet ? member.add(obj) : member.set(obj, value); -}; - -// node_modules/js-message/Message.js -var require_Message = __commonJS({ - "node_modules/js-message/Message.js"(exports, module2) { - function Message3() { - Object.defineProperties(this, { - data: { - enumerable: true, - get: getData, - set: setData - }, - type: { - enumerable: true, - get: getType, - set: setType - }, - load: { - enumerable: true, - writable: false, - value: parse - }, - JSON: { - enumerable: true, - get: getJSON - } - }); - var type = ""; - var data = {}; - function getType() { - return type; - } - function getData() { - return data; - } - function getJSON() { - return JSON.stringify({ - type, - data - }); - } - function setType(value) { - type = value; - } - function setData(value) { - data = value; - } - function parse(message) { - try { - var message = JSON.parse(message); - type = message.type; - data = message.data; - } catch (err) { - var badMessage = message; - type = "error", data = { - message: "Invalid JSON response format", - err, - response: badMessage - }; - } - } - } - module2.exports = Message3; - } -}); - -// node_modules/js-queue/queue.js -var require_queue = __commonJS({ - "node_modules/js-queue/queue.js"(exports, module2) { - function Queue2(asStack) { - Object.defineProperties(this, { - add: { - enumerable: true, - writable: false, - value: addToQueue - }, - next: { - enumerable: true, - writable: false, - value: run - }, - clear: { - enumerable: true, - writable: false, - value: clearQueue - }, - contents: { - enumerable: false, - get: getQueue, - set: setQueue - }, - autoRun: { - enumerable: true, - writable: true, - value: true - }, - stop: { - enumerable: true, - writable: true, - value: false - } - }); - var queue = []; - var running = false; - var stop = false; - function clearQueue() { - queue = []; - return queue; - } - function getQueue() { - return queue; - } - function setQueue(val) { - queue = val; - return queue; - } - function addToQueue() { - for (var i in arguments) { - queue.push(arguments[i]); - } - if (!running && !this.stop && this.autoRun) { - this.next(); - } - } - function run() { - running = true; - if (queue.length < 1 || this.stop) { - running = false; - return; - } - queue.shift().bind(this)(); - } - } - module2.exports = Queue2; - } -}); - -// node-ipc.js -__export(exports, { - IPCModule: () => IPCModule, - default: () => singleton -}); - -// entities/Defaults.js -var import_os = __toModule(require("os")); -var Defaults = class { - constructor() { - __publicField(this, "appspace", "app."); - __publicField(this, "socketRoot", "/tmp/"); - __publicField(this, "id", import_os.default.hostname()); - __publicField(this, "encoding", "utf8"); - __publicField(this, "rawBuffer", false); - __publicField(this, "sync", false); - __publicField(this, "unlink", true); - __publicField(this, "delimiter", "\f"); - __publicField(this, "silent", false); - __publicField(this, "logDepth", 5); - __publicField(this, "logInColor", true); - __publicField(this, "logger", console.log.bind(console)); - __publicField(this, "maxConnections", 100); - __publicField(this, "retry", 500); - __publicField(this, "maxRetries", Infinity); - __publicField(this, "stopRetrying", false); - __publicField(this, "IPType", getIPType()); - __publicField(this, "tls", false); - __publicField(this, "networkHost", this.IPType == "IPv6" ? "::1" : "127.0.0.1"); - __publicField(this, "networkPort", 8e3); - __publicField(this, "readableAll", false); - __publicField(this, "writableAll", false); - __publicField(this, "interface", { - localAddress: false, - localPort: false, - family: false, - hints: false, - lookup: false - }); - } -}; -function getIPType() { - const networkInterfaces = import_os.default.networkInterfaces(); - let IPType = ""; - if (networkInterfaces && Array.isArray(networkInterfaces) && networkInterfaces.length > 0) { - IPType = networkInterfaces[Object.keys(networkInterfaces)[0]][0].family; - } - return IPType; -} - -// dao/client.js -var import_net = __toModule(require("net")); -var import_tls = __toModule(require("tls")); - -// entities/EventParser.js -var Parser = class { - constructor(config) { - if (!config) { - config = new Defaults(); - } - this.delimiter = config.delimiter; - } - format(message) { - if (!message.data && message.data !== false && message.data !== 0) { - message.data = {}; - } - if (message.data["_maxListeners"]) { - message.data = {}; - } - message = message.JSON + this.delimiter; - return message; - } - parse(data) { - let events = data.split(this.delimiter); - events.pop(); - return events; - } -}; - -// dao/client.js -var import_js_message = __toModule(require_Message()); -var import_fs = __toModule(require("fs")); -var import_js_queue = __toModule(require_queue()); - -// node_modules/strong-type/index.js -var Fake = class { -}; -var FakeCore = class { -}; -var Is = class { - constructor(strict = true) { - this.strict = strict; - } - throw(valueType, expectedType) { - let err = new TypeError(); - err.message = `expected type of ${valueType} to be ${expectedType}`; - if (!this.strict) { - return false; - } - throw err; - } - typeCheck(value, type) { - if (typeof value === type) { - return true; - } - return this.throw(typeof value, type); - } - instanceCheck(value = new Fake(), constructor = FakeCore) { - if (value instanceof constructor) { - return true; - } - return this.throw(typeof value, constructor.name); - } - symbolStringCheck(value, type) { - if (Object.prototype.toString.call(value) == `[object ${type}]`) { - return true; - } - return this.throw(Object.prototype.toString.call(value), `[object ${type}]`); - } - compare(value, targetValue, typeName) { - if (value == targetValue) { - return true; - } - return this.throw(typeof value, typeName); - } - defined(value) { - const weakIs = new Is(false); - if (weakIs.undefined(value)) { - return this.throw("undefined", "defined"); - } - return true; - } - any(value) { - return this.defined(value); - } - exists(value) { - return this.defined(value); - } - union(value, typesString) { - const types = typesString.split("|"); - const weakIs = new Is(false); - let pass = false; - let type = "undefined"; - for (type of types) { - try { - if (weakIs[type](value)) { - pass = true; - break; - } - } catch (err) { - return this.throw(type, "a method available on strong-type"); - } - } - if (pass) { - return this[type](value); - } - return this.throw(typeof value, types.join("|")); - } - finite(value) { - if (isFinite(value)) { - return true; - } - return this.throw(typeof value, "finite"); - } - NaN(value) { - if (!this.number(value)) { - return this.number(value); - } - if (isNaN(value)) { - return true; - } - return this.throw(typeof value, "NaN"); - } - null(value) { - return this.compare(value, null, "null"); - } - array(value) { - return this.instanceCheck(value, Array); - } - boolean(value) { - return this.typeCheck(value, "boolean"); - } - bigInt(value) { - return this.typeCheck(value, "bigint"); - } - date(value) { - return this.instanceCheck(value, Date); - } - generator(value) { - return this.symbolStringCheck(value, "Generator"); - } - asyncGenerator(value) { - return this.symbolStringCheck(value, "AsyncGenerator"); - } - globalThis(value) { - return this.compare(value, globalThis, "explicitly globalThis, not window, global nor self"); - } - infinity(value) { - return this.compare(value, Infinity, "Infinity"); - } - map(value) { - return this.instanceCheck(value, Map); - } - weakMap(value) { - return this.instanceCheck(value, WeakMap); - } - number(value) { - return this.typeCheck(value, "number"); - } - object(value) { - return this.typeCheck(value, "object"); - } - promise(value) { - return this.instanceCheck(value, Promise); - } - regExp(value) { - return this.instanceCheck(value, RegExp); - } - undefined(value) { - return this.typeCheck(value, "undefined"); - } - set(value) { - return this.instanceCheck(value, Set); - } - weakSet(value) { - return this.instanceCheck(value, WeakSet); - } - string(value) { - return this.typeCheck(value, "string"); - } - symbol(value) { - return this.typeCheck(value, "symbol"); - } - function(value) { - return this.typeCheck(value, "function"); - } - asyncFunction(value) { - return this.symbolStringCheck(value, "AsyncFunction"); - } - generatorFunction(value) { - return this.symbolStringCheck(value, "GeneratorFunction"); - } - asyncGeneratorFunction(value) { - return this.symbolStringCheck(value, "AsyncGeneratorFunction"); - } - error(value) { - return this.instanceCheck(value, Error); - } - evalError(value) { - return this.instanceCheck(value, EvalError); - } - rangeError(value) { - return this.instanceCheck(value, RangeError); - } - referenceError(value) { - return this.instanceCheck(value, ReferenceError); - } - syntaxError(value) { - return this.instanceCheck(value, SyntaxError); - } - typeError(value) { - return this.instanceCheck(value, TypeError); - } - URIError(value) { - return this.instanceCheck(value, URIError); - } - bigInt64Array(value) { - return this.instanceCheck(value, BigInt64Array); - } - bigUint64Array(value) { - return this.instanceCheck(value, BigUint64Array); - } - float32Array(value) { - return this.instanceCheck(value, Float32Array); - } - float64Array(value) { - return this.instanceCheck(value, Float64Array); - } - int8Array(value) { - return this.instanceCheck(value, Int8Array); - } - int16Array(value) { - return this.instanceCheck(value, Int16Array); - } - int32Array(value) { - return this.instanceCheck(value, Int32Array); - } - uint8Array(value) { - return this.instanceCheck(value, Uint8Array); - } - uint8ClampedArray(value) { - return this.instanceCheck(value, Uint8ClampedArray); - } - uint16Array(value) { - return this.instanceCheck(value, Uint16Array); - } - uint32Array(value) { - return this.instanceCheck(value, Uint32Array); - } - arrayBuffer(value) { - return this.instanceCheck(value, ArrayBuffer); - } - dataView(value) { - return this.instanceCheck(value, DataView); - } - sharedArrayBuffer(value) { - return this.instanceCheck(value, function() { - try { - return SharedArrayBuffer; - } catch (e) { - return Fake; - } - }()); - } - intlDateTimeFormat(value) { - return this.instanceCheck(value, Intl.DateTimeFormat); - } - intlCollator(value) { - return this.instanceCheck(value, Intl.Collator); - } - intlDisplayNames(value) { - return this.instanceCheck(value, Intl.DisplayNames); - } - intlListFormat(value) { - return this.instanceCheck(value, Intl.ListFormat); - } - intlLocale(value) { - return this.instanceCheck(value, Intl.Locale); - } - intlNumberFormat(value) { - return this.instanceCheck(value, Intl.NumberFormat); - } - intlPluralRules(value) { - return this.instanceCheck(value, Intl.PluralRules); - } - intlRelativeTimeFormat(value) { - return this.instanceCheck(value, Intl.RelativeTimeFormat); - } - intlRelativeTimeFormat(value) { - return this.instanceCheck(value, Intl.RelativeTimeFormat); - } - finalizationRegistry(value) { - return this.instanceCheck(value, FinalizationRegistry); - } - weakRef(value) { - return this.instanceCheck(value, WeakRef); - } -}; - -// node_modules/event-pubsub/index.js -var is = new Is(); -var _handleOnce, _all, _once, _events; -var EventPubSub = class { - constructor() { - __privateAdd(this, _handleOnce, (type, handlers, ...args) => { - is.string(type); - is.array(handlers); - const deleteOnceHandled = []; - for (let handler of handlers) { - handler(...args); - if (handler[__privateGet(this, _once)]) { - deleteOnceHandled.push(handler); - } - } - for (let handler of deleteOnceHandled) { - this.off(type, handler); - } - }); - __privateAdd(this, _all, Symbol.for("event-pubsub-all")); - __privateAdd(this, _once, Symbol.for("event-pubsub-once")); - __privateAdd(this, _events, {}); - } - on(type, handler, once = false) { - is.string(type); - is.function(handler); - is.boolean(once); - if (type == "*") { - type = __privateGet(this, _all); - } - if (!__privateGet(this, _events)[type]) { - __privateGet(this, _events)[type] = []; - } - handler[__privateGet(this, _once)] = once; - __privateGet(this, _events)[type].push(handler); - return this; - } - once(type, handler) { - return this.on(type, handler, true); - } - off(type = "*", handler = "*") { - is.string(type); - if (type == __privateGet(this, _all).toString() || type == "*") { - type = __privateGet(this, _all); - } - if (!__privateGet(this, _events)[type]) { - return this; - } - if (handler == "*") { - delete __privateGet(this, _events)[type]; - return this; - } - is.function(handler); - const handlers = __privateGet(this, _events)[type]; - while (handlers.includes(handler)) { - handlers.splice(handlers.indexOf(handler), 1); - } - if (handlers.length < 1) { - delete __privateGet(this, _events)[type]; - } - return this; - } - emit(type, ...args) { - is.string(type); - const globalHandlers = __privateGet(this, _events)[__privateGet(this, _all)] || []; - __privateGet(this, _handleOnce).call(this, __privateGet(this, _all).toString(), globalHandlers, type, ...args); - if (!__privateGet(this, _events)[type]) { - return this; - } - const handlers = __privateGet(this, _events)[type]; - __privateGet(this, _handleOnce).call(this, type, handlers, ...args); - return this; - } - reset() { - this.off(__privateGet(this, _all).toString()); - for (let type in __privateGet(this, _events)) { - this.off(type); - } - return this; - } - get list() { - return Object.assign({}, __privateGet(this, _events)); - } -}; -_handleOnce = new WeakMap(); -_all = new WeakMap(); -_once = new WeakMap(); -_events = new WeakMap(); - -// dao/client.js -var eventParser = new Parser(); -var Client = class extends EventPubSub { - constructor(config, log2) { - super(); - __publicField(this, "Client", Client); - __publicField(this, "queue", new import_js_queue.default()); - __publicField(this, "socket", false); - __publicField(this, "connect", connect); - __publicField(this, "emit", emit); - __publicField(this, "retriesRemaining", 0); - __publicField(this, "explicitlyDisconnected", false); - this.config = config; - this.log = log2; - this.publish = super.emit; - config.maxRetries ? this.retriesRemaining = config.maxRetries : 0; - eventParser = new Parser(this.config); - } -}; -function emit(type, data) { - this.log("dispatching event to ", this.id, this.path, " : ", type, ",", data); - let message = new import_js_message.default(); - message.type = type; - message.data = data; - if (this.config.rawBuffer) { - message = Buffer.from(type, this.config.encoding); - } else { - message = eventParser.format(message); - } - if (!this.config.sync) { - this.socket.write(message); - return; - } - this.queue.add(syncEmit.bind(this, message)); -} -function syncEmit(message) { - this.log("dispatching event to ", this.id, this.path, " : ", message); - this.socket.write(message); -} -function connect() { - let client = this; - client.log("requested connection to ", client.id, client.path); - if (!this.path) { - client.log("\n\n######\nerror: ", client.id, " client has not specified socket path it wishes to connect to."); - return; - } - const options = {}; - if (!client.port) { - client.log("Connecting client on Unix Socket :", client.path); - options.path = client.path; - if (process.platform === "win32" && !client.path.startsWith("\\\\.\\pipe\\")) { - options.path = options.path.replace(/^\//, ""); - options.path = options.path.replace(/\//g, "-"); - options.path = `\\\\.\\pipe\\${options.path}`; - } - client.socket = import_net.default.connect(options); - } else { - options.host = client.path; - options.port = client.port; - if (client.config.interface.localAddress) { - options.localAddress = client.config.interface.localAddress; - } - if (client.config.interface.localPort) { - options.localPort = client.config.interface.localPort; - } - if (client.config.interface.family) { - options.family = client.config.interface.family; - } - if (client.config.interface.hints) { - options.hints = client.config.interface.hints; - } - if (client.config.interface.lookup) { - options.lookup = client.config.interface.lookup; - } - if (!client.config.tls) { - client.log("Connecting client via TCP to", options); - client.socket = import_net.default.connect(options); - } else { - client.log("Connecting client via TLS to", client.path, client.port, client.config.tls); - if (client.config.tls.private) { - client.config.tls.key = import_fs.default.readFileSync(client.config.tls.private); - } - if (client.config.tls.public) { - client.config.tls.cert = import_fs.default.readFileSync(client.config.tls.public); - } - if (client.config.tls.trustedConnections) { - if (typeof client.config.tls.trustedConnections === "string") { - client.config.tls.trustedConnections = [client.config.tls.trustedConnections]; - } - client.config.tls.ca = []; - for (let i = 0; i < client.config.tls.trustedConnections.length; i++) { - client.config.tls.ca.push(import_fs.default.readFileSync(client.config.tls.trustedConnections[i])); - } - } - Object.assign(client.config.tls, options); - client.socket = import_tls.default.connect(client.config.tls); - } - } - client.socket.setEncoding(this.config.encoding); - client.socket.on("error", function(err) { - client.log("\n\n######\nerror: ", err); - client.publish("error", err); - }); - client.socket.on("connect", function connectionMade() { - client.publish("connect"); - client.retriesRemaining = client.config.maxRetries; - client.log("retrying reset"); - }); - client.socket.on("close", function connectionClosed() { - client.log("connection closed", client.id, client.path, client.retriesRemaining, "tries remaining of", client.config.maxRetries); - if (client.config.stopRetrying || client.retriesRemaining < 1 || client.explicitlyDisconnected) { - client.publish("disconnect"); - client.log(client.config.id, "exceeded connection rety amount of", " or stopRetrying flag set."); - client.socket.destroy(); - client.publish("destroy"); - client = void 0; - return; - } - setTimeout(function retryTimeout() { - if (client.explicitlyDisconnected) { - return; - } - client.retriesRemaining--; - client.connect(); - }.bind(null, client), client.config.retry); - client.publish("disconnect"); - }); - client.socket.on("data", function(data) { - client.log("## received events ##"); - if (client.config.rawBuffer) { - client.publish("data", Buffer.from(data, client.config.encoding)); - if (!client.config.sync) { - return; - } - client.queue.next(); - return; - } - if (!this.ipcBuffer) { - this.ipcBuffer = ""; - } - data = this.ipcBuffer += data; - if (data.slice(-1) != eventParser.delimiter || data.indexOf(eventParser.delimiter) == -1) { - client.log("Messages are large, You may want to consider smaller messages."); - return; - } - this.ipcBuffer = ""; - const events = eventParser.parse(data); - const eCount = events.length; - for (let i = 0; i < eCount; i++) { - let message = new import_js_message.default(); - message.load(events[i]); - client.log("detected event", message.type, message.data); - client.publish(message.type, message.data); - } - if (!client.config.sync) { - return; - } - client.queue.next(); - }); -} - -// dao/socketServer.js -var import_net2 = __toModule(require("net")); -var import_tls2 = __toModule(require("tls")); -var import_fs2 = __toModule(require("fs")); -var import_dgram = __toModule(require("dgram")); -var import_js_message2 = __toModule(require_Message()); -var eventParser2 = new Parser(); -var Server = class extends EventPubSub { - constructor(path, config, log2, port) { - super(); - __publicField(this, "udp4", false); - __publicField(this, "udp6", false); - __publicField(this, "server", false); - __publicField(this, "sockets", []); - __publicField(this, "emit", emit2); - __publicField(this, "broadcast", broadcast); - this.config = config; - this.path = path; - this.port = port; - this.log = log2; - this.publish = super.emit; - eventParser2 = new Parser(this.config); - this.on("close", serverClosed.bind(this)); - } - onStart(socket) { - this.publish("start", socket); - } - stop() { - this.server.close(); - } - start() { - if (!this.path) { - this.log("Socket Server Path not specified, refusing to start"); - return; - } - if (this.config.unlink) { - import_fs2.default.unlink(this.path, startServer.bind(this)); - } else { - startServer.bind(this)(); - } - } -}; -function emit2(socket, type, data) { - this.log("dispatching event to socket", " : ", type, data); - let message = new import_js_message2.default(); - message.type = type; - message.data = data; - if (this.config.rawBuffer) { - this.log(this.config.encoding); - message = Buffer.from(type, this.config.encoding); - } else { - message = eventParser2.format(message); - } - if (this.udp4 || this.udp6) { - if (!socket.address || !socket.port) { - this.log("Attempting to emit to a single UDP socket without supplying socket address or port. Redispatching event as broadcast to all connected sockets"); - this.broadcast(type, data); - return; - } - this.server.write(message, socket); - return; - } - socket.write(message); -} -function broadcast(type, data) { - this.log("broadcasting event to all known sockets listening to ", this.path, " : ", this.port ? this.port : "", type, data); - let message = new import_js_message2.default(); - message.type = type; - message.data = data; - if (this.config.rawBuffer) { - message = Buffer.from(type, this.config.encoding); - } else { - message = eventParser2.format(message); - } - if (this.udp4 || this.udp6) { - for (let i = 1, count = this.sockets.length; i < count; i++) { - this.server.write(message, this.sockets[i]); - } - } else { - for (let i = 0, count = this.sockets.length; i < count; i++) { - this.sockets[i].write(message); - } - } -} -function serverClosed() { - for (let i = 0, count = this.sockets.length; i < count; i++) { - let socket = this.sockets[i]; - let destroyedSocketId = false; - if (socket) { - if (socket.readable) { - continue; - } - } - if (socket.id) { - destroyedSocketId = socket.id; - } - this.log("socket disconnected", destroyedSocketId.toString()); - if (socket && socket.destroy) { - socket.destroy(); - } - this.sockets.splice(i, 1); - this.publish("socket.disconnected", socket, destroyedSocketId); - return; - } -} -function gotData(socket, data, UDPSocket) { - let sock = this.udp4 || this.udp6 ? UDPSocket : socket; - if (this.config.rawBuffer) { - data = Buffer.from(data, this.config.encoding); - this.publish("data", data, sock); - return; - } - if (!sock.ipcBuffer) { - sock.ipcBuffer = ""; - } - data = sock.ipcBuffer += data; - if (data.slice(-1) != eventParser2.delimiter || data.indexOf(eventParser2.delimiter) == -1) { - this.log("Messages are large, You may want to consider smaller messages."); - return; - } - sock.ipcBuffer = ""; - data = eventParser2.parse(data); - while (data.length > 0) { - let message = new import_js_message2.default(); - message.load(data.shift()); - if (message.data && message.data.id) { - sock.id = message.data.id; - } - this.log("received event of : ", message.type, message.data); - this.publish(message.type, message.data, sock); - } -} -function socketClosed(socket) { - this.publish("close", socket); -} -function serverCreated(socket) { - this.sockets.push(socket); - if (socket.setEncoding) { - socket.setEncoding(this.config.encoding); - } - this.log("## socket connection to server detected ##"); - socket.on("close", socketClosed.bind(this)); - socket.on("error", function(err) { - this.log("server socket error", err); - this.publish("error", err); - }.bind(this)); - socket.on("data", gotData.bind(this, socket)); - socket.on("message", function(msg, rinfo) { - if (!rinfo) { - return; - } - this.log("Received UDP message from ", rinfo.address, rinfo.port); - let data; - if (this.config.rawSocket) { - data = Buffer.from(msg, this.config.encoding); - } else { - data = msg.toString(); - } - socket.emit("data", data, rinfo); - }.bind(this)); - this.publish("connect", socket); - if (this.config.rawBuffer) { - return; - } -} -function startServer() { - this.log("starting server on ", this.path, this.port ? `:${this.port}` : ""); - if (!this.udp4 && !this.udp6) { - this.log("starting TLS server", this.config.tls); - if (!this.config.tls) { - this.server = import_net2.default.createServer(serverCreated.bind(this)); - } else { - startTLSServer.bind(this)(); - } - } else { - this.server = import_dgram.default.createSocket(this.udp4 ? "udp4" : "udp6"); - this.server.write = UDPWrite.bind(this); - this.server.on("listening", function UDPServerStarted() { - serverCreated.bind(this)(this.server); - }.bind(this)); - } - this.server.on("error", function(err) { - this.log("server error", err); - this.publish("error", err); - }.bind(this)); - this.server.maxConnections = this.config.maxConnections; - if (!this.port) { - this.log("starting server as", "Unix || Windows Socket"); - if (process.platform === "win32") { - this.path = this.path.replace(/^\//, ""); - this.path = this.path.replace(/\//g, "-"); - this.path = `\\\\.\\pipe\\${this.path}`; - } - this.server.listen({ - path: this.path, - readableAll: this.config.readableAll, - writableAll: this.config.writableAll - }, this.onStart.bind(this)); - return; - } - if (!this.udp4 && !this.udp6) { - this.log("starting server as", this.config.tls ? "TLS" : "TCP"); - this.server.listen(this.port, this.path, this.onStart.bind(this)); - return; - } - this.log("starting server as", this.udp4 ? "udp4" : "udp6"); - this.server.bind(this.port, this.path); - this.onStart({ - address: this.path, - port: this.port - }); -} -function startTLSServer() { - this.log("starting TLS server", this.config.tls); - if (this.config.tls.private) { - this.config.tls.key = import_fs2.default.readFileSync(this.config.tls.private); - } else { - this.config.tls.key = import_fs2.default.readFileSync(`${__dirname}/../local-node-ipc-certs/private/server.key`); - } - if (this.config.tls.public) { - this.config.tls.cert = import_fs2.default.readFileSync(this.config.tls.public); - } else { - this.config.tls.cert = import_fs2.default.readFileSync(`${__dirname}/../local-node-ipc-certs/server.pub`); - } - if (this.config.tls.dhparam) { - this.config.tls.dhparam = import_fs2.default.readFileSync(this.config.tls.dhparam); - } - if (this.config.tls.trustedConnections) { - if (typeof this.config.tls.trustedConnections === "string") { - this.config.tls.trustedConnections = [this.config.tls.trustedConnections]; - } - this.config.tls.ca = []; - for (let i = 0; i < this.config.tls.trustedConnections.length; i++) { - this.config.tls.ca.push(import_fs2.default.readFileSync(this.config.tls.trustedConnections[i])); - } - } - this.server = import_tls2.default.createServer(this.config.tls, serverCreated.bind(this)); -} -function UDPWrite(message, socket) { - let data = Buffer.from(message, this.config.encoding); - this.server.send(data, 0, data.length, socket.port, socket.address, function(err, bytes) { - if (err) { - this.log("error writing data to socket", err); - this.publish("error", function(err2) { - this.publish("error", err2); - }); - } - }); -} - -// services/IPC.js -var import_util = __toModule(require("util")); -var IPC = class { - constructor() { - __publicField(this, "config", new Defaults()); - __publicField(this, "of", {}); - __publicField(this, "server", false); - } - get connectTo() { - return connect2; - } - get connectToNet() { - return connectNet; - } - get disconnect() { - return disconnect; - } - get serve() { - return serve; - } - get serveNet() { - return serveNet; - } - get log() { - return log; - } - set connectTo(value) { - return connect2; - } - set connectToNet(value) { - return connectNet; - } - set disconnect(value) { - return disconnect; - } - set serve(value) { - return serve; - } - set serveNet(value) { - return serveNet; - } - set log(value) { - return log; - } -}; -function log(...args) { - if (this.config.silent) { - return; - } - for (let i = 0, count = args.length; i < count; i++) { - if (typeof args[i] != "object") { - continue; - } - args[i] = import_util.default.inspect(args[i], { - depth: this.config.logDepth, - colors: this.config.logInColor - }); - } - this.config.logger(args.join(" ")); -} -function disconnect(id) { - if (!this.of[id]) { - return; - } - this.of[id].explicitlyDisconnected = true; - this.of[id].off("*", "*"); - if (this.of[id].socket) { - if (this.of[id].socket.destroy) { - this.of[id].socket.destroy(); - } - } - delete this.of[id]; -} -function serve(path, callback) { - if (typeof path == "function") { - callback = path; - path = false; - } - if (!path) { - this.log("Server path not specified, so defaulting to", "ipc.config.socketRoot + ipc.config.appspace + ipc.config.id", this.config.socketRoot + this.config.appspace + this.config.id); - path = this.config.socketRoot + this.config.appspace + this.config.id; - } - if (!callback) { - callback = emptyCallback; - } - this.server = new Server(path, this.config, log); - this.server.on("start", callback); -} -function emptyCallback() { -} -function serveNet(host, port, UDPType2, callback) { - if (typeof host == "number") { - callback = UDPType2; - UDPType2 = port; - port = host; - host = false; - } - if (typeof host == "function") { - callback = host; - UDPType2 = false; - host = false; - port = false; - } - if (!host) { - this.log("Server host not specified, so defaulting to", "ipc.config.networkHost", this.config.networkHost); - host = this.config.networkHost; - } - if (host.toLowerCase() == "udp4" || host.toLowerCase() == "udp6") { - callback = port; - UDPType2 = host.toLowerCase(); - port = false; - host = this.config.networkHost; - } - if (typeof port == "string") { - callback = UDPType2; - UDPType2 = port; - port = false; - } - if (typeof port == "function") { - callback = port; - UDPType2 = false; - port = false; - } - if (!port) { - this.log("Server port not specified, so defaulting to", "ipc.config.networkPort", this.config.networkPort); - port = this.config.networkPort; - } - if (typeof UDPType2 == "function") { - callback = UDPType2; - UDPType2 = false; - } - if (!callback) { - callback = emptyCallback; - } - this.server = new Server(host, this.config, log, port); - if (UDPType2) { - this.server[UDPType2] = true; - if (UDPType2 === "udp4" && host === "::1") { - this.server.path = "127.0.0.1"; - } - } - this.server.on("start", callback); -} -function connect2(id, path, callback) { - if (typeof path == "function") { - callback = path; - path = false; - } - if (!callback) { - callback = emptyCallback; - } - if (!id) { - this.log("Service id required", "Requested service connection without specifying service id. Aborting connection attempt"); - return; - } - if (!path) { - this.log("Service path not specified, so defaulting to", "ipc.config.socketRoot + ipc.config.appspace + id", (this.config.socketRoot + this.config.appspace + id).data); - path = this.config.socketRoot + this.config.appspace + id; - } - if (this.of[id]) { - if (!this.of[id].socket.destroyed) { - this.log("Already Connected to", id, "- So executing success without connection"); - callback(); - return; - } - this.of[id].socket.destroy(); - } - this.of[id] = new Client(this.config, this.log); - this.of[id].id = id; - this.of[id].socket ? this.of[id].socket.id = id : null; - this.of[id].path = path; - this.of[id].connect(); - callback(this); -} -function connectNet(id, host, port, callback) { - if (!id) { - this.log("Service id required", "Requested service connection without specifying service id. Aborting connection attempt"); - return; - } - if (typeof host == "number") { - callback = port; - port = host; - host = false; - } - if (typeof host == "function") { - callback = host; - host = false; - port = false; - } - if (!host) { - this.log("Server host not specified, so defaulting to", "ipc.config.networkHost", this.config.networkHost); - host = this.config.networkHost; - } - if (typeof port == "function") { - callback = port; - port = false; - } - if (!port) { - this.log("Server port not specified, so defaulting to", "ipc.config.networkPort", this.config.networkPort); - port = this.config.networkPort; - } - if (typeof callback == "string") { - UDPType = callback; - callback = false; - } - if (!callback) { - callback = emptyCallback; - } - if (this.of[id]) { - if (!this.of[id].socket.destroyed) { - this.log("Already Connected to", id, "- So executing success without connection"); - callback(); - return; - } - this.of[id].socket.destroy(); - } - this.of[id] = new Client(this.config, this.log); - this.of[id].id = id; - this.of[id].socket ? this.of[id].socket.id = id : null; - this.of[id].path = host; - this.of[id].port = port; - this.of[id].connect(); - callback(this); -} - -// node-ipc.js -var IPCModule = class extends IPC { - constructor() { - super(); - __publicField(this, "IPC", IPC); - } -}; -var singleton = new IPCModule(); -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - IPCModule -});