UNPKG

@logiccloud/node-red-logiccloud-control

Version:

The all-in-one logiccloud control package for Node-RED environment.

1,598 lines (1,368 loc) 10 MB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define("runtimeHelper", [], factory); else if(typeof exports === 'object') exports["runtimeHelper"] = factory(); else root["runtimeHelper"] = factory(); })(global, () => { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ([ /* 0 */ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); const tslib_1 = __webpack_require__(1); tslib_1.__exportStar(__webpack_require__(2), exports); tslib_1.__exportStar(__webpack_require__(3), exports); tslib_1.__exportStar(__webpack_require__(4), exports); tslib_1.__exportStar(__webpack_require__(243), exports); /***/ }), /* 1 */ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ __addDisposableResource: () => (/* binding */ __addDisposableResource), /* harmony export */ __assign: () => (/* binding */ __assign), /* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator), /* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator), /* harmony export */ __asyncValues: () => (/* binding */ __asyncValues), /* harmony export */ __await: () => (/* binding */ __await), /* harmony export */ __awaiter: () => (/* binding */ __awaiter), /* harmony export */ __classPrivateFieldGet: () => (/* binding */ __classPrivateFieldGet), /* harmony export */ __classPrivateFieldIn: () => (/* binding */ __classPrivateFieldIn), /* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet), /* harmony export */ __createBinding: () => (/* binding */ __createBinding), /* harmony export */ __decorate: () => (/* binding */ __decorate), /* harmony export */ __disposeResources: () => (/* binding */ __disposeResources), /* harmony export */ __esDecorate: () => (/* binding */ __esDecorate), /* harmony export */ __exportStar: () => (/* binding */ __exportStar), /* harmony export */ __extends: () => (/* binding */ __extends), /* harmony export */ __generator: () => (/* binding */ __generator), /* harmony export */ __importDefault: () => (/* binding */ __importDefault), /* harmony export */ __importStar: () => (/* binding */ __importStar), /* harmony export */ __makeTemplateObject: () => (/* binding */ __makeTemplateObject), /* harmony export */ __metadata: () => (/* binding */ __metadata), /* harmony export */ __param: () => (/* binding */ __param), /* harmony export */ __propKey: () => (/* binding */ __propKey), /* harmony export */ __read: () => (/* binding */ __read), /* harmony export */ __rest: () => (/* binding */ __rest), /* harmony export */ __runInitializers: () => (/* binding */ __runInitializers), /* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName), /* harmony export */ __spread: () => (/* binding */ __spread), /* harmony export */ __spreadArray: () => (/* binding */ __spreadArray), /* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays), /* harmony export */ __values: () => (/* binding */ __values), /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /* global Reflect, Promise, SuppressedError, Symbol */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } return __assign.apply(this, arguments); } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); var _, done = false; for (var i = decorators.length - 1; i >= 0; i--) { var context = {}; for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; for (var p in contextIn.access) context.access[p] = contextIn.access[p]; context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); if (kind === "accessor") { if (result === void 0) continue; if (result === null || typeof result !== "object") throw new TypeError("Object expected"); if (_ = accept(result.get)) descriptor.get = _; if (_ = accept(result.set)) descriptor.set = _; if (_ = accept(result.init)) initializers.unshift(_); } else if (_ = accept(result)) { if (kind === "field") initializers.unshift(_); else descriptor[key] = _; } } if (target) Object.defineProperty(target, contextIn.name, descriptor); done = true; }; function __runInitializers(thisArg, initializers, value) { var useValue = arguments.length > 2; for (var i = 0; i < initializers.length; i++) { value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); } return useValue ? value : void 0; }; function __propKey(x) { return typeof x === "symbol" ? x : "".concat(x); }; function __setFunctionName(f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } var __createBinding = Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); function __exportStar(m, o) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); } function __values(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } /** @deprecated */ function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } /** @deprecated */ function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; } function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; var __setModuleDefault = Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; } function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } function __classPrivateFieldGet(receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); } function __classPrivateFieldSet(receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; } function __classPrivateFieldIn(state, receiver) { if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); return typeof state === "function" ? receiver === state : state.has(receiver); } function __addDisposableResource(env, value, async) { if (value !== null && value !== void 0) { if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); var dispose; if (async) { if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); dispose = value[Symbol.asyncDispose]; } if (dispose === void 0) { if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); dispose = value[Symbol.dispose]; } if (typeof dispose !== "function") throw new TypeError("Object not disposable."); env.stack.push({ value: value, dispose: dispose, async: async }); } else if (async) { env.stack.push({ async: true }); } return value; } var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { var e = new Error(message); return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; }; function __disposeResources(env) { function fail(e) { env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; env.hasError = true; } function next() { while (env.stack.length) { var rec = env.stack.pop(); try { var result = rec.dispose && rec.dispose.call(rec.value); if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); } catch (e) { fail(e); } } if (env.hasError) throw env.error; } return next(); } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __classPrivateFieldIn, __addDisposableResource, __disposeResources, }); /***/ }), /* 2 */ /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); /***/ }), /* 3 */ /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); /***/ }), /* 4 */ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ConnectionWrapper = void 0; const tslib_1 = __webpack_require__(1); const logging_1 = __webpack_require__(5); const events_1 = __webpack_require__(34); const runtime_client_1 = __webpack_require__(144); class ConnectionWrapper { constructor(settings) { this.logger = (0, logging_1.createLogger)("connection-wrapper"); this.settings = settings; this.events = new events_1.EventEmitter(); this.isStarted = false; this.isConnected = false; this.client = undefined; this.logger.debug(`ConnectionWrapper created with settings: ${JSON.stringify(settings)}`); } start() { if (this.isStarted) { this.logger.warn(`ConnectionWrapper is already started!`); return; } try { this.logger.info(`ConnectionWrapper starting connection ..., isStarted: ${this.isStarted}, isConnected: ${this.isConnected}`); const socketSettings = { protocol: 'tcp', host: this.settings.host, port: this.settings.port, }; this.client = new runtime_client_1.NodeRedClient(socketSettings, true, true, `node-red-client-${this.settings.host}${this.settings.port}`); this.client.events.on('onListInputs', (inputs) => tslib_1.__awaiter(this, void 0, void 0, function* () { this.logger.info(`ConnectionWrapper inputs received: ${inputs}`); this.events.emit('onListInputs', inputs); })); this.client.events.on('onListOutputs', (outputs) => tslib_1.__awaiter(this, void 0, void 0, function* () { this.logger.info(`ConnectionWrapper outputs received: ${outputs}`); this.events.emit('onListOutputs', outputs); })); this.client.events.on('onOutputsReceived', (outputs) => tslib_1.__awaiter(this, void 0, void 0, function* () { this.logger.info(`ConnectionWrapper outputs received!`); this.events.emit('onOutputsReceived', outputs); })); this.client.events.on('onConnected', () => tslib_1.__awaiter(this, void 0, void 0, function* () { this.isConnected = true; this.logger.info(`ConnectionWrapper connected!, isStarted: ${this.isStarted}, isConnected: ${this.isConnected}`); this.events.emit('onConnected'); })); this.client.events.on('onSocketClosed', () => tslib_1.__awaiter(this, void 0, void 0, function* () { this.isConnected = false; this.logger.info(`ConnectionWrapper socket closed!, isStarted: ${this.isStarted}, isConnected: ${this.isConnected}`); this.events.emit('onConnectionClosed'); })); this.client.events.on('onRuntimeConnectivity', (connectivity) => { this.logger.info(`ConnectionWrapper runtime connectivity received: ${connectivity}`); this.events.emit('onRuntimeConnectivity', connectivity); }); this.client.events.on('onOperationDisconnected', () => tslib_1.__awaiter(this, void 0, void 0, function* () { this.isConnected = false; this.logger.info(`ConnectionWrapper operational disconnection received!`); this.events.emit('onConnectionClosed'); })); this.client.connect(); this.isStarted = true; this.logger.info(`ConnectionWrapper connection is started!`); } catch (e) { this.logger.error(e, `ConnectionWrapper cannot start connection!`); } } stop() { if (!this.isStarted) { this.logger.warn(`ConnectionWrapper connection is not started!`); return; } try { this.logger.info(`ConnectionWrapper stopping connection ..., isStarted: ${this.isStarted}, isConnected: ${this.isConnected}`); if (this.client !== undefined) { this.client.disconnect(); this.client = undefined; } this.isStarted = false; this.logger.info(`ConnectionWrapper connection is stopped!`); } catch (e) { this.logger.error(e, `ConnectionWrapper cannot stop connection!`); } } sendInput(variableUpdate) { var _a; if (!this.isStarted) { this.logger.warn(`ConnectionWrapper connection is not started!`); return; } if (!this.isConnected) { this.logger.warn(`ConnectionWrapper connection is not established!`); return; } try { this.logger.debug(`ConnectionWrapper sending input: ${JSON.stringify(variableUpdate)}, isStarted: ${this.isStarted}, isConnected: ${this.isConnected}`); (_a = this.client) === null || _a === void 0 ? void 0 : _a.sendUpdate(variableUpdate); } catch (e) { this.logger.error(e, `ConnectionWrapper cannot send input!`); } } } exports.ConnectionWrapper = ConnectionWrapper; /***/ }), /* 5 */ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createLogger = void 0; const tslib_1 = __webpack_require__(1); const pino_1 = tslib_1.__importDefault(__webpack_require__(6)); const cosmiconfig_1 = __webpack_require__(54); const explorerSync = (0, cosmiconfig_1.cosmiconfigSync)("pino"); let loggerOptions; function initOptions() { if (!loggerOptions) { const config = explorerSync.search(); if (config && !config.isEmpty && config.config) { loggerOptions = config.config; } else { loggerOptions = {}; } } } function createLogger(name) { initOptions(); return (0, pino_1.default)(Object.assign(Object.assign({}, loggerOptions), { name, timestamp: pino_1.default.stdTimeFunctions.isoTime, formatters: { bindings: (bindings) => { // return { pid: bindings.pid, host: bindings.hostname }; // return { pid: bindings.pid }; // return {}; return { pid: bindings.pid, name: bindings.name }; }, level: (label) => { return { level: label.toUpperCase() }; }, } })); } exports.createLogger = createLogger; //# sourceMappingURL=index.js.map /***/ }), /* 6 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; const os = __webpack_require__(7) const stdSerializers = __webpack_require__(8) const caller = __webpack_require__(15) const redaction = __webpack_require__(16) const time = __webpack_require__(26) const proto = __webpack_require__(27) const symbols = __webpack_require__(25) const { configure } = __webpack_require__(52) const { assertDefaultLevelFound, mappings, genLsCache, genLevelComparison, assertLevelComparison } = __webpack_require__(29) const { DEFAULT_LEVELS, SORTING_ORDER } = __webpack_require__(50) const { createArgsNormalizer, asChindings, buildSafeSonicBoom, buildFormatters, stringify, normalizeDestFileDescriptor, noop } = __webpack_require__(30) const { version } = __webpack_require__(51) const { chindingsSym, redactFmtSym, serializersSym, timeSym, timeSliceIndexSym, streamSym, stringifySym, stringifySafeSym, stringifiersSym, setLevelSym, endSym, formatOptsSym, messageKeySym, errorKeySym, nestedKeySym, mixinSym, levelCompSym, useOnlyCustomLevelsSym, formattersSym, hooksSym, nestedKeyStrSym, mixinMergeStrategySym, msgPrefixSym } = symbols const { epochTime, nullTime } = time const { pid } = process const hostname = os.hostname() const defaultErrorSerializer = stdSerializers.err const defaultOptions = { level: 'info', levelComparison: SORTING_ORDER.ASC, levels: DEFAULT_LEVELS, messageKey: 'msg', errorKey: 'err', nestedKey: null, enabled: true, base: { pid, hostname }, serializers: Object.assign(Object.create(null), { err: defaultErrorSerializer }), formatters: Object.assign(Object.create(null), { bindings (bindings) { return bindings }, level (label, number) { return { level: number } } }), hooks: { logMethod: undefined }, timestamp: epochTime, name: undefined, redact: null, customLevels: null, useOnlyCustomLevels: false, depthLimit: 5, edgeLimit: 100 } const normalize = createArgsNormalizer(defaultOptions) const serializers = Object.assign(Object.create(null), stdSerializers) function pino (...args) { const instance = {} const { opts, stream } = normalize(instance, caller(), ...args) if (opts.level && typeof opts.level === 'string' && DEFAULT_LEVELS[opts.level.toLowerCase()] !== undefined) opts.level = opts.level.toLowerCase() const { redact, crlf, serializers, timestamp, messageKey, errorKey, nestedKey, base, name, level, customLevels, levelComparison, mixin, mixinMergeStrategy, useOnlyCustomLevels, formatters, hooks, depthLimit, edgeLimit, onChild, msgPrefix } = opts const stringifySafe = configure({ maximumDepth: depthLimit, maximumBreadth: edgeLimit }) const allFormatters = buildFormatters( formatters.level, formatters.bindings, formatters.log ) const stringifyFn = stringify.bind({ [stringifySafeSym]: stringifySafe }) const stringifiers = redact ? redaction(redact, stringifyFn) : {} const formatOpts = redact ? { stringify: stringifiers[redactFmtSym] } : { stringify: stringifyFn } const end = '}' + (crlf ? '\r\n' : '\n') const coreChindings = asChindings.bind(null, { [chindingsSym]: '', [serializersSym]: serializers, [stringifiersSym]: stringifiers, [stringifySym]: stringify, [stringifySafeSym]: stringifySafe, [formattersSym]: allFormatters }) let chindings = '' if (base !== null) { if (name === undefined) { chindings = coreChindings(base) } else { chindings = coreChindings(Object.assign({}, base, { name })) } } const time = (timestamp instanceof Function) ? timestamp : (timestamp ? epochTime : nullTime) const timeSliceIndex = time().indexOf(':') + 1 if (useOnlyCustomLevels && !customLevels) throw Error('customLevels is required if useOnlyCustomLevels is set true') if (mixin && typeof mixin !== 'function') throw Error(`Unknown mixin type "${typeof mixin}" - expected "function"`) if (msgPrefix && typeof msgPrefix !== 'string') throw Error(`Unknown msgPrefix type "${typeof msgPrefix}" - expected "string"`) assertDefaultLevelFound(level, customLevels, useOnlyCustomLevels) const levels = mappings(customLevels, useOnlyCustomLevels) if (typeof stream.emit === 'function') { stream.emit('message', { code: 'PINO_CONFIG', config: { levels, messageKey, errorKey } }) } assertLevelComparison(levelComparison) const levelCompFunc = genLevelComparison(levelComparison) Object.assign(instance, { levels, [levelCompSym]: levelCompFunc, [useOnlyCustomLevelsSym]: useOnlyCustomLevels, [streamSym]: stream, [timeSym]: time, [timeSliceIndexSym]: timeSliceIndex, [stringifySym]: stringify, [stringifySafeSym]: stringifySafe, [stringifiersSym]: stringifiers, [endSym]: end, [formatOptsSym]: formatOpts, [messageKeySym]: messageKey, [errorKeySym]: errorKey, [nestedKeySym]: nestedKey, // protect against injection [nestedKeyStrSym]: nestedKey ? `,${JSON.stringify(nestedKey)}:{` : '', [serializersSym]: serializers, [mixinSym]: mixin, [mixinMergeStrategySym]: mixinMergeStrategy, [chindingsSym]: chindings, [formattersSym]: allFormatters, [hooksSym]: hooks, silent: noop, onChild, [msgPrefixSym]: msgPrefix }) Object.setPrototypeOf(instance, proto()) genLsCache(instance) instance[setLevelSym](level) return instance } module.exports = pino module.exports.destination = (dest = process.stdout.fd) => { if (typeof dest === 'object') { dest.dest = normalizeDestFileDescriptor(dest.dest || process.stdout.fd) return buildSafeSonicBoom(dest) } else { return buildSafeSonicBoom({ dest: normalizeDestFileDescriptor(dest), minLength: 0 }) } } module.exports.transport = __webpack_require__(41) module.exports.multistream = __webpack_require__(53) module.exports.levels = mappings() module.exports.stdSerializers = serializers module.exports.stdTimeFunctions = Object.assign({}, time) module.exports.symbols = symbols module.exports.version = version // Enables default and name export with TypeScript and Babel module.exports["default"] = pino module.exports.pino = pino /***/ }), /* 7 */ /***/ ((module) => { "use strict"; module.exports = require("node:os"); /***/ }), /* 8 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; const errSerializer = __webpack_require__(9) const errWithCauseSerializer = __webpack_require__(12) const reqSerializers = __webpack_require__(13) const resSerializers = __webpack_require__(14) module.exports = { err: errSerializer, errWithCause: errWithCauseSerializer, mapHttpRequest: reqSerializers.mapHttpRequest, mapHttpResponse: resSerializers.mapHttpResponse, req: reqSerializers.reqSerializer, res: resSerializers.resSerializer, wrapErrorSerializer: function wrapErrorSerializer (customSerializer) { if (customSerializer === errSerializer) return customSerializer return function wrapErrSerializer (err) { return customSerializer(errSerializer(err)) } }, wrapRequestSerializer: function wrapRequestSerializer (customSerializer) { if (customSerializer === reqSerializers.reqSerializer) return customSerializer return function wrappedReqSerializer (req) { return customSerializer(reqSerializers.reqSerializer(req)) } }, wrapResponseSerializer: function wrapResponseSerializer (customSerializer) { if (customSerializer === resSerializers.resSerializer) return customSerializer return function wrappedResSerializer (res) { return customSerializer(resSerializers.resSerializer(res)) } } } /***/ }), /* 9 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; module.exports = errSerializer const { messageWithCauses, stackWithCauses, isErrorLike } = __webpack_require__(10) const { pinoErrProto, pinoErrorSymbols } = __webpack_require__(11) const { seen } = pinoErrorSymbols const { toString } = Object.prototype function errSerializer (err) { if (!isErrorLike(err)) { return err } err[seen] = undefined // tag to prevent re-looking at this const _err = Object.create(pinoErrProto) _err.type = toString.call(err.constructor) === '[object Function]' ? err.constructor.name : err.name _err.message = messageWithCauses(err) _err.stack = stackWithCauses(err) if (Array.isArray(err.errors)) { _err.aggregateErrors = err.errors.map(err => errSerializer(err)) } for (const key in err) { if (_err[key] === undefined) { const val = err[key] if (isErrorLike(val)) { // We append cause messages and stacks to _err, therefore skipping causes here if (key !== 'cause' && !Object.prototype.hasOwnProperty.call(val, seen)) { _err[key] = errSerializer(val) } } else { _err[key] = val } } } delete err[seen] // clean up tag in case err is serialized again later _err.raw = err return _err } /***/ }), /* 10 */ /***/ ((module) => { "use strict"; // ************************************************************** // * Code initially copied/adapted from "pony-cause" npm module * // * Please upstream improvements there * // ************************************************************** const isErrorLike = (err) => { return err && typeof err.message === 'string' } /** * @param {Error|{ cause?: unknown|(()=>err)}} err * @returns {Error|Object|undefined} */ const getErrorCause = (err) => { if (!err) return /** @type {unknown} */ // @ts-ignore const cause = err.cause // VError / NError style causes if (typeof cause === 'function') { // @ts-ignore const causeResult = err.cause() return isErrorLike(causeResult) ? causeResult : undefined } else { return isErrorLike(cause) ? cause : undefined } } /** * Internal method that keeps a track of which error we have already added, to avoid circular recursion * * @private * @param {Error} err * @param {Set<Error>} seen * @returns {string} */ const _stackWithCauses = (err, seen) => { if (!isErrorLike(err)) return '' const stack = err.stack || '' // Ensure we don't go circular or crazily deep if (seen.has(err)) { return stack + '\ncauses have become circular...' } const cause = getErrorCause(err) if (cause) { seen.add(err) return (stack + '\ncaused by: ' + _stackWithCauses(cause, seen)) } else { return stack } } /** * @param {Error} err * @returns {string} */ const stackWithCauses = (err) => _stackWithCauses(err, new Set()) /** * Internal method that keeps a track of which error we have already added, to avoid circular recursion * * @private * @param {Error} err * @param {Set<Error>} seen * @param {boolean} [skip] * @returns {string} */ const _messageWithCauses = (err, seen, skip) => { if (!isErrorLike(err)) return '' const message = skip ? '' : (err.message || '') // Ensure we don't go circular or crazily deep if (seen.has(err)) { return message + ': ...' } const cause = getErrorCause(err) if (cause) { seen.add(err) // @ts-ignore const skipIfVErrorStyleCause = typeof err.cause === 'function' return (message + (skipIfVErrorStyleCause ? '' : ': ') + _messageWithCauses(cause, seen, skipIfVErrorStyleCause)) } else { return message } } /** * @param {Error} err * @returns {string} */ const messageWithCauses = (err) => _messageWithCauses(err, new Set()) module.exports = { isErrorLike, getErrorCause, stackWithCauses, messageWithCauses } /***/ }), /* 11 */ /***/ ((module) => { "use strict"; const seen = Symbol('circular-ref-tag') const rawSymbol = Symbol('pino-raw-err-ref') const pinoErrProto = Object.create({}, { type: { enumerable: true, writable: true, value: undefined }, message: { enumerable: true, writable: true, value: undefined }, stack: { enumerable: true, writable: true, value: undefined }, aggregateErrors: { enumerable: true, writable: true, value: undefined }, raw: { enumerable: false, get: function () { return this[rawSymbol] }, set: function (val) { this[rawSymbol] = val } } }) Object.defineProperty(pinoErrProto, rawSymbol, { writable: true, value: {} }) module.exports = { pinoErrProto, pinoErrorSymbols: { seen, rawSymbol } } /***/ }), /* 12 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; module.exports = errWithCauseSerializer const { isErrorLike } = __webpack_require__(10) const { pinoErrProto, pinoErrorSymbols } = __webpack_require__(11) const { seen } = pinoErrorSymbols const { toString } = Object.prototype function errWithCauseSerializer (err) { if (!isErrorLike(err)) { return err } err[seen] = undefined // tag to prevent re-looking at this const _err = Object.create(pinoErrProto) _err.type = toString.call(err.constructor) === '[object Function]' ? err.constructor.name : err.name _err.message = err.message _err.stack = err.stack if (Array.isArray(err.errors)) { _err.aggregateErrors = err.errors.map(err => errWithCauseSerializer(err)) } if (isErrorLike(err.cause) && !Object.prototype.hasOwnProperty.call(err.cause, seen)) { _err.cause = errWithCauseSerializer(err.cause) } for (const key in err) { if (_err[key] === undefined) { const val = err[key] if (isErrorLike(val)) { if (!Object.prototype.hasOwnProperty.call(val, seen)) { _err[key] = errWithCauseSerializer(val) } } else { _err[key] = val } } } delete err[seen] // clean up tag in case err is serialized again later _err.raw = err return _err } /***/ }), /* 13 */ /***/ ((module) => { "use strict"; module.exports = { mapHttpRequest, reqSerializer } const rawSymbol = Symbol('pino-raw-req-ref') const pinoReqProto = Object.create({}, { id: { enumerable: true, writable: true, value: '' }, method: { enumerable: true, writable: true, value: '' }, url: { enumerable: true, writable: true, value: '' }, query: { enumerable: true, writable: true, value: '' }, params: { enumerable: true, writable: true, value: '' }, headers: { enumerable: true, writable: true, value: {} }, remoteAddress: { enumerable: true, writable: true, value: '' }, remotePort: { enumerable: true, writable: true, value: '' }, raw: { enumerable: false, get: function () { return this[rawSymbol] }, set: function (val) { this[rawSymbol] = val } } }) Object.defineProperty(pinoReqProto, rawSymbol, { writable: true, value: {} }) function reqSerializer (req) { // req.info is for hapi compat. const connection = req.info || req.socket const _req = Object.create(pinoReqProto) _req.id = (typeof req.id === 'function' ? req.id() : (req.id || (req.info ? req.info.id : undefined))) _req.method = req.method // req.originalUrl is for expressjs compat. if (req.originalUrl) { _req.url = req.originalUrl } else { const path = req.path // path for safe hapi compat. _req.url = typeof path === 'string' ? path : (req.url ? req.url.path || req.url : undefined) } if (req.query) { _req.query = req.query } if (req.params) { _req.params = req.params } _req.headers = req.headers _req.remoteAddress = connection && connection.remoteAddress _req.remotePort = connection && connection.remotePort // req.raw is for hapi compat/equivalence _req.raw = req.raw || req return _req } function mapHttpRequest (req) { return { req: reqSerializer(req) } } /***/ }), /* 14 */ /***/ ((module) => { "use strict"; module.exports = { mapHttpResponse, resSerializer } const rawSymbol = Symbol('pino-raw-res-ref') const pinoResProto = Object.create({}, { statusCode: { enumerable: true, writable: true, value: 0 }, headers: { enumerable: true, writable: true, value: '' }, raw: { enumerable: false, get: function () { return this[rawSymbol] }, set: function (val) { this[rawSymbol] = val } } }) Object.defineProperty(pinoResProto, rawSymbol, { writable: true, value: {} }) function resSerializer (res) { const _res = Object.create(pinoResProto) _res.statusCode = res.headersSent ? res.statusCode : null _res.headers = res.getHeaders ? res.getHeaders() : res._headers _res.raw = res return _res } function mapHttpResponse (res) { return { res: resSerializer(res) } } /***/ }), /* 15 */ /***/ ((module) => { "use strict"; function noOpPrepareStackTrace (_, stack) { return stack } module.exports = function getCallers () { const originalPrepare = Error.prepareStackTrace Error.prepareStackTrace = noOpPrepareStackTrace const stack = new Error().stack Error.prepareStackTrace = originalPrepare if (!Array.isArray(stack)) { return undefined } const entries = stack.slice(2) const fileNames = [] for (const entry of entries) { if (!entry) { continue } fileNames.push(entry.getFileName()) } return fileNames } /***/ }), /* 16 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; const fastRedact = __webpack_require__(17) const { redactFmtSym, wildcardFirstSym } = __webpack_require__(25) const { rx, validator } = fastRedact const validate = validator({ ERR_PATHS_MUST_BE_STRINGS: () => 'pino – redacted paths must be strings', ERR_INVALID_PATH: (s) => `pino – redact paths array contains an invalid path (${s})` }) const CENSOR = '[Redacted]' const strict = false // TODO should this be configurable? function redaction (opts, serialize) { const { paths, censor } = handle(opts) const shape = paths.reduce((o, str) => { rx.lastIndex = 0 const first = rx.exec(str) const next = rx.exec(str) // ns is the top-level path segment, brackets + quoting removed. let ns = first[1] !== undefined ? first[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/, '$1') : first[0] if (ns === '*') { ns = wildcardFirstSym } // top level key: if (next === null) { o[ns] = null return o } // path with at least two segments: // if ns is already redacted at the top level, ignore lower level redactions if (o[ns] === null) { return o } const { index } = next const nextPath = `${str.substr(index, str.length - 1)}` o[ns] = o[ns] || [] // shape is a mix of paths beginning with literal values and wildcard // paths [ "a.b.c", "*.b.z" ] should reduce to a shape of // { "a": [ "b.c", "b.z" ], *: [ "b.z" ] } // note: "b.z" is in both "a" and * arrays because "a" matches the wildcard. // (* entry has wildcardFirstSym as key) if (ns !== wildcardFirstSym && o[ns].length === 0) { // first time ns's get all '*' redactions so far o[ns].push(...(o[wildcardFirstSym] || [])) } if (ns === wildcardFirstSym) { // new * path gets added to all previously registered literal ns's. Object.keys(o).forEach(function (k) { if (o[k]) { o[k].push(nextPath) } }) } o[ns].push(nextPath) return o }, {}) // the redactor assigned to the format symbol key // provides top level redaction for instances where // an object is interpolated into the msg string const result = { [redactFmtSym]: fastRedact({ paths, censor, serialize, strict }) } const topCensor = (...args) => { return typeof censor === 'function' ? serialize(censor(...args)) : serialize(censor) } return [...Object.keys(shape), ...Object.getOwnPropertySymbols(shape)].reduce((o, k) => { // top level key: if (shape[k] === null) { o[k] = (value) => topCensor(value, [k]) } else { const wrappedCensor = typeof censor === 'function' ? (value, path) => { return censor(value, [k, ...path]) } : censor o[k] = fastRedact({ paths: shape[k], censor: wrappedCensor, serialize, strict }) } return o }, result) } function handle (opts) { if (Array.isArray(opts)) { opts = { paths: opts, censor: CENSOR } validate(opts) return opts } let { paths, censor = CENSOR, remove } = opts if (Array.isArray(paths) === false) { throw Error('pino – redact must contain an array of strings') } if (remove === true) censor = undefined validate({ paths, censor }) return { paths, censor } } module.exports = redaction /***/ }), /* 17 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; const validator = __webpack_require__(18) const parse = __webpack_require__(19) const redactor = __webpack_require__(21) const restorer = __webpack_require__(22) const { groupRedact, nestedRedact } = __webpack_require__(23) const state = __webpack_require__(24) const rx = __webpack_require__(20) const validate = validator() const noop = (o) => o noop.restore = noop const DEFAULT_CENSOR = '[REDACTED]' fastRedact.rx = rx fastRedact.validator = validator module.exports = fastRedact function fastRedact (opts = {}) { const paths = Array.from(new Set(opts.paths || [])) const serialize = 'serialize' in opts ? ( opts.serialize === false ? opts.serialize : (typeof opts.serialize === 'function' ? opts.serialize : JSON.stringify) ) : JSON.stringify const remove = opts.remove if (remove === true && serialize !== JSON.stringify) { throw Error('fast-redact – remove option may only be set when serializer is JSON.stringify') } const censor = remove === true ? undefined : 'censor' in opts ? opts.censor : DEFAULT_CENSOR const isCensorFct = typeof censor === 'function' const censorFctTakesPath = isCensorFct && censor.length > 1 if (paths.length === 0) return serialize || noop validate({ paths, serialize, censor }) const { wildcards, wcLen, secret } = parse({ paths, censor }) const compileRestore = restorer() const strict = 'strict' in opts ? opts.strict : true return redactor({ secret, wcLen, serialize, strict, isCensorFct, censorFctTakesPath }, state({ secret, censor, compileRestore, serialize, groupRedact, nestedRedact, wildcards, wcLen })) } /***/ }), /* 18 */ /***/ ((module) => { "use strict"; module.exports = validator function validator (opts = {}) { const { ERR_PATHS_MUST_BE_STRINGS = () => 'fast-redact - Paths must be (non-empty) strings', ERR_INVALID_PATH = (s) => `fast-redact – Invalid path (${s})` } = opts return function validate ({ paths }) { paths.forEach((s) => { if (typeof s !== 'string') { throw Error(ERR_PATHS_MUST_BE_STRINGS()) } try { if (/〇/.test(s)) throw Error() const expr = (s[0] === '[' ? '' : '.') + s.replace(/^\*/, '〇').replace(/\.\*/g, '.〇').replace(/\[\*\]/g, '[〇]') if (/\n|\r|;/.test(expr)) throw Error() if (/\/\*/.test(ex