peepee
Version:
Visual Programming Language Where You Connect Ports Of One EventEmitter to Ports Of Another EventEmitter
267 lines (249 loc) • 6.77 kB
JSON
{
"id": "basic/pass-through",
"version": "1.2.3",
"description": "Applies various image filters with real-time preview and adjustable parameters",
"author": {
"name": "John Doe",
"email": "john@example.com",
"url": "https://example.com"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/myorg/image-filter-node.git"
},
"keywords": ["image", "filter", "processing", "graphics"],
"category": "image-processing",
"subcategory": "filters",
"node": {
"id": "image-filter",
"displayName": "Image Filter",
"icon": "filter",
"color": "#4A90E2",
"backgroundColor": "#F5F7FA",
"borderColor": "#E1E8ED",
"width": 200,
"height": 120,
"resizable": true,
"collapsible": true,
"tags": ["image", "filter", "effect"],
"documentation": {
"description": "Advanced image filtering node with support for multiple filter types and real-time preview",
"examples": [
{
"title": "Basic Blur Effect",
"description": "Apply a simple blur filter to an input image",
"config": {
"filterType": "blur",
"intensity": 0.5
}
}
],
"url": "https://docs.example.com/nodes/image-filter"
},
"execution": {
"runtime": "javascript",
"entry": "index.js",
"async": true,
"timeout": 30000,
"memoryLimit": "256MB",
"cpuLimit": "1000m"
},
"inputs": [
{
"id": "image",
"name": "Image Input",
"description": "Source image to apply filter to",
"type": "required",
"dataType": "image/*",
"mimeTypes": ["image/png", "image/jpeg", "image/webp", "image/svg+xml"],
"position": "left",
"offset": 30,
"color": "#FF6B6B",
"shape": "circle",
"allowMultiple": false,
"defaultValue": null,
"validation": {
"required": true,
"maxSize": "10MB",
"minResolution": "1x1",
"maxResolution": "8192x8192"
}
},
{
"id": "mask",
"name": "Mask",
"description": "Optional mask to limit filter application area",
"type": "optional",
"dataType": "image/mask",
"mimeTypes": ["image/png", "image/jpeg"],
"position": "left",
"offset": 70,
"color": "#4ECDC4",
"shape": "square",
"allowMultiple": false,
"defaultValue": null,
"validation": {
"required": false,
"channels": ["grayscale", "alpha"]
}
},
{
"id": "trigger",
"name": "Process",
"description": "Trigger to start processing",
"type": "trigger",
"dataType": "application/x-trigger",
"mimeTypes": ["application/x-trigger"],
"position": "left",
"offset": 110,
"color": "#95E1D3",
"shape": "triangle",
"allowMultiple": false
}
],
"outputs": [
{
"id": "output",
"name": "Filtered Image",
"description": "Processed image with applied filter",
"dataType": "image/*",
"mimeTypes": ["image/png", "image/jpeg", "image/webp"],
"position": "right",
"offset": 30,
"color": "#FF6B6B",
"shape": "circle",
"metadata": {
"preserveFormat": true,
"quality": "original"
}
},
{
"id": "preview",
"name": "Preview",
"description": "Low-resolution preview for real-time feedback",
"dataType": "image/preview",
"mimeTypes": ["image/jpeg"],
"position": "right",
"offset": 70,
"color": "#FFA07A",
"shape": "circle",
"metadata": {
"maxResolution": "512x512",
"quality": 0.7
}
},
{
"id": "debug",
"name": "Debug Info",
"description": "Processing statistics and debug information",
"dataType": "application/json",
"mimeTypes": ["application/json"],
"position": "right",
"offset": 110,
"color": "#DDA0DD",
"shape": "hexagon"
}
],
"properties": [
{
"name": "strokeColor",
"type": "color",
"label": "Stroke Color",
"description": "The color of the station outline, used for visual distinction.",
"defaultValue": "orange",
"ports": [
{
"id": "strokeColor",
"name": "strokeColor"
}
]
},
{
"name": "fillColor",
"type": "color",
"label": "Fill Color",
"description": "The color of the station.",
"defaultValue": "orange",
"ports": [
{
"id": "fillColor",
"name": "fillColor"
}
]
}
],
"events": [
{
"id": "onProcessStart",
"name": "Processing Started",
"description": "Fired when image processing begins",
"dataType": "application/json",
"payload": {
"timestamp": "number",
"inputSize": "object",
"filterType": "string"
}
},
{
"id": "onProcessComplete",
"name": "Processing Complete",
"description": "Fired when image processing finishes",
"dataType": "application/json",
"payload": {
"timestamp": "number",
"processingTime": "number",
"outputSize": "object"
}
},
{
"id": "onError",
"name": "Processing Error",
"description": "Fired when an error occurs during processing",
"dataType": "application/json",
"payload": {
"timestamp": "number",
"error": "string",
"errorCode": "string"
}
}
],
"dependencies": {
"runtime": {
"canvas-api": "^2.0.0",
"image-processing": "^1.5.0"
},
"peer": {
"visual-programming-engine": ">=3.0.0"
}
},
"capabilities": {
"streaming": true,
"parallelProcessing": false,
"webWorker": true,
"gpu": false,
"fileSystem": false,
"network": false
},
"metadata": {
"nodeVersion": "2.1.0",
"apiVersion": "1.0",
"created": "2024-01-15T10:30:00Z",
"updated": "2024-03-20T14:45:00Z",
"deprecated": false,
"experimental": false,
"stability": "stable"
}
},
"files": {
"main": "index.js",
"types": "types/index.d.ts",
"icon": "assets/icon.svg",
"preview": "assets/preview.png",
"documentation": "README.md"
},
"engines": {
"visualProgramming": ">=3.0.0",
"node": ">=16.0.0"
}
}