new file: monitoring/node-red/data/.config.nodes.json
new file: monitoring/node-red/data/.config.runtime.json new file: monitoring/node-red/data/.config.runtime.json.backup new file: monitoring/node-red/data/.config.users.json new file: monitoring/node-red/data/.config.users.json.backup new file: monitoring/node-red/data/.flows.json.backup new file: monitoring/node-red/data/.flows_cred.json.backup new file: monitoring/node-red/data/.npm/_cacache/content-v2/sha512/b0/47/c1458664fa9b6a08e9035110b523127a96bd7285d19472dc702f5dc498b927412b0ecd3273708fbf9d61754520599ac0b0e11f3e4c4d4ac784e78d7d97fe new file: monitoring/node-red/data/.npm/_cacache/content-v2/sha512/c2/c2/b64870ea5c5a42b5772106f51123cf684d3c8381de10ccc07d01168d111d0a1ab79ee26fda320b3027c76cfc856119f7b440845a83c9f22d7d731643e62f new file: monitoring/node-red/data/.npm/_cacache/index-v5/15/a4/2638498d877ec2c8c3d88cb9c08d7867c52d3fceb6fc64cc5abde73b01a9 new file: monitoring/node-red/data/.npm/_cacache/index-v5/48/03/b8903b717bbc1ad41b3f37148db48f54e0828c1aef870973f6672895d689 new file: monitoring/node-red/data/.npm/_logs/2026-04-05T01_36_15_515Z-debug-0.log new file: monitoring/node-red/data/context/00b02bbd01c91485/flow.json new file: monitoring/node-red/data/context/global/global.json new file: monitoring/node-red/data/flows.json new file: monitoring/node-red/data/flows_cred.json new file: monitoring/node-red/data/node_modules/.package-lock.json new file: monitoring/node-red/data/node_modules/node-red-debugger/CHANGELOG.md new file: monitoring/node-red/data/node_modules/node-red-debugger/LICENSE new file: monitoring/node-red/data/node_modules/node-red-debugger/README.md new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/flow-debugger.html new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/flow-debugger.js new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/flow-debugger.js.map new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/lib/MessageQueue.js new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/lib/MessageQueue.js.map new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/lib/debugger.js new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/lib/debugger.js.map new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/lib/location.js new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/lib/location.js.map new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/lib/types.js new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/lib/types.js.map new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/locales/en-US/flow-debugger.json new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/locales/ja/flow-debugger.json new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/nr-types.js new file: monitoring/node-red/data/node_modules/node-red-debugger/dist/nr-types.js.map new file: monitoring/node-red/data/node_modules/node-red-debugger/package.json new file: monitoring/node-red/data/node_modules/node-red-debugger/resources/style.css new file: monitoring/node-red/data/package-lock.json new file: monitoring/node-red/data/package.json new file: monitoring/node-red/data/settings.js new file: monitoring/node-red/data/test-container.sh new file: monitoring/node-red/data/test-container.sh.old new file: monitoring/node-red/data/webhook.json
This commit is contained in:
+140
@@ -0,0 +1,140 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const debugger_1 = require("./lib/debugger");
|
||||
const location_1 = require("./lib/location");
|
||||
module.exports = (RED) => {
|
||||
const apiRoot = "/flow-debugger";
|
||||
RED.plugins.registerPlugin("node-red-debugger", {
|
||||
onadd: () => {
|
||||
const flowDebugger = new debugger_1.Debugger(RED);
|
||||
const routeAuthHandler = RED.auth.needsPermission("flow-debugger.write");
|
||||
RED.comms.publish("flow-debugger/connected", true, true);
|
||||
function publishState() {
|
||||
RED.comms.publish("flow-debugger/state", flowDebugger.getState());
|
||||
}
|
||||
flowDebugger.on("paused", (event) => {
|
||||
RED.comms.publish("flow-debugger/paused", event);
|
||||
});
|
||||
flowDebugger.on("resumed", (event) => {
|
||||
RED.comms.publish("flow-debugger/resumed", event);
|
||||
});
|
||||
flowDebugger.on("messageQueued", (event) => {
|
||||
// Don't include the full message on the event
|
||||
// event.msg = RED.util.encodeObject({msg:event.msg}, {maxLength: 100});
|
||||
delete event.msg;
|
||||
RED.comms.publish("flow-debugger/messageQueued", event);
|
||||
});
|
||||
flowDebugger.on("messageDispatched", (event) => {
|
||||
RED.comms.publish("flow-debugger/messageDispatched", event);
|
||||
});
|
||||
// flowDebugger.on("step", (event) => {
|
||||
//
|
||||
// });
|
||||
RED.httpAdmin.get(`${apiRoot}`, (_, res) => {
|
||||
res.json(flowDebugger.getState());
|
||||
});
|
||||
RED.httpAdmin.put(`${apiRoot}`, routeAuthHandler, (req, res) => {
|
||||
let stateChanged = false;
|
||||
if (req.body.hasOwnProperty("enabled")) {
|
||||
const enabled = !!req.body.enabled;
|
||||
if (enabled && !flowDebugger.enabled) {
|
||||
flowDebugger.enable();
|
||||
stateChanged = true;
|
||||
}
|
||||
else if (!enabled && flowDebugger.enabled) {
|
||||
flowDebugger.disable();
|
||||
stateChanged = true;
|
||||
}
|
||||
}
|
||||
if (req.body.hasOwnProperty("config")) {
|
||||
stateChanged = flowDebugger.setConfig(req.body.config);
|
||||
}
|
||||
if (stateChanged) {
|
||||
publishState();
|
||||
}
|
||||
res.json(flowDebugger.getState());
|
||||
});
|
||||
RED.httpAdmin.get(`${apiRoot}/breakpoints`, routeAuthHandler, (_, res) => {
|
||||
res.json(flowDebugger.getBreakpoints());
|
||||
});
|
||||
RED.httpAdmin.put(`${apiRoot}/breakpoints/:id`, routeAuthHandler, (req, res) => {
|
||||
flowDebugger.setBreakpointActive(req.params.id, req.body.active);
|
||||
res.json(flowDebugger.getBreakpoint(req.params.id));
|
||||
});
|
||||
RED.httpAdmin.delete(`${apiRoot}/breakpoints/:id`, routeAuthHandler, (req, res) => {
|
||||
flowDebugger.clearBreakpoint(req.params.id);
|
||||
res.sendStatus(200);
|
||||
});
|
||||
RED.httpAdmin.post(`${apiRoot}/breakpoints`, routeAuthHandler, (req, res) => {
|
||||
// req.body.location
|
||||
const breakpointId = flowDebugger.setBreakpoint(new location_1.Location(req.body.id, req.body.path, req.body.portType, req.body.portIndex));
|
||||
res.json(flowDebugger.getBreakpoint(breakpointId));
|
||||
});
|
||||
RED.httpAdmin.get(`${apiRoot}/messages`, routeAuthHandler, (_, res) => {
|
||||
res.json(Array.from(flowDebugger.getMessageQueue()).map(m => {
|
||||
const result = {
|
||||
id: m.id,
|
||||
location: m.location.toString(),
|
||||
destination: undefined,
|
||||
msg: RED.util.encodeObject({ msg: m.event.msg }, { maxLength: 100 })
|
||||
};
|
||||
if (m.event.hasOwnProperty('source')) {
|
||||
// SendEvent - so include the destination location id
|
||||
result.destination = m.event.destination.id + "[i][0]";
|
||||
}
|
||||
return result;
|
||||
}));
|
||||
});
|
||||
RED.httpAdmin.get(`${apiRoot}/messages/:id`, routeAuthHandler, (req, res) => {
|
||||
const id = req.params.id;
|
||||
const messageEvent = flowDebugger.getMessageQueue().get(parseInt(id, 10));
|
||||
if (messageEvent) {
|
||||
const result = {
|
||||
id: messageEvent.id,
|
||||
location: messageEvent.location,
|
||||
destination: undefined,
|
||||
msg: RED.util.encodeObject({ msg: messageEvent.event.msg }, { maxLength: 100 })
|
||||
};
|
||||
if (messageEvent.event.hasOwnProperty('source')) {
|
||||
// SendEvent - so include the destination location id
|
||||
result.destination = messageEvent.event.destination.id + "[i][0]";
|
||||
}
|
||||
res.json(result);
|
||||
}
|
||||
else {
|
||||
res.sendStatus(404);
|
||||
}
|
||||
});
|
||||
RED.httpAdmin.delete(`${apiRoot}/messages/:id`, routeAuthHandler, (req, res) => {
|
||||
flowDebugger.deleteMessage(parseInt(req.params.id, 10));
|
||||
res.sendStatus(200);
|
||||
});
|
||||
RED.httpAdmin.post(`${apiRoot}/pause`, routeAuthHandler, (_, res) => {
|
||||
flowDebugger.pause();
|
||||
res.sendStatus(200);
|
||||
});
|
||||
RED.httpAdmin.post(`${apiRoot}/step`, routeAuthHandler, (req, res) => {
|
||||
let stepMessage = null;
|
||||
if (req.body && req.body.message) {
|
||||
stepMessage = req.body.message;
|
||||
}
|
||||
flowDebugger.step(stepMessage);
|
||||
res.sendStatus(200);
|
||||
});
|
||||
RED.httpAdmin.post(`${apiRoot}/resume`, routeAuthHandler, (_, res) => {
|
||||
flowDebugger.resume();
|
||||
res.sendStatus(200);
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
/*
|
||||
|
||||
/flow-debugger/enable
|
||||
/flow-debugger/disable
|
||||
/flow-debugger/breakpoint
|
||||
|
||||
|
||||
|
||||
*/
|
||||
//# sourceMappingURL=flow-debugger.js.map
|
||||
Reference in New Issue
Block a user