Files
docker/monitoring/node-red/data/node_modules/node-red-debugger/dist/flow-debugger.js
T
git d519139615 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
2026-04-13 05:36:20 +10:00

140 lines
6.2 KiB
JavaScript

"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