Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

rete

Package Overview
Dependencies
Maintainers
1
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rete - npm Package Compare versions

Comparing version 1.0.0-alpha.1 to 1.0.0-alpha.2

build/rete.engine.d.ts

42

CONTRIBUTING.md

@@ -5,3 +5,3 @@ # Contribute

First, thank you for considering contributing to d3-node-editor! It's people like you that make the open source community such a great community! 😊
First, thank you for considering contributing to `rete`! It's people like you that make the open source community such a great community! 😊

@@ -14,3 +14,3 @@ We welcome any type of contribution, not only code. You can help with

- **Code**: take a look at the [open issues](issues). Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them.
- **Money**: we welcome financial contributions in full transparency on [open collective](https://opencollective.com/d3-node-editor) or [patreon](https://www.patreon.com/ni55an)
- **Money**: we welcome financial contributions in full transparency on [open collective](https://opencollective.com/rete) or [patreon](https://www.patreon.com/ni55an)

@@ -32,7 +32,7 @@ ## Your First Contribution

The `docs/` folder contains documentation that deploys on [readthedocs.io](https://d3-node-editor.readthedocs.io/en/latest/). All changes in this folder should be commited separately with prefix `[docs]`. It will also be submitted as a pull request.
The `docs/` folder contains documentation that deploys on [readthedocs.io](https://rete.readthedocs.io/en/latest/). All changes in this folder should be commited separately with prefix `[docs]`. It will also be submitted as a pull request.
## Financial contributions
We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/d3-node-editor).
We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/rete).
Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.

@@ -42,4 +42,4 @@

If you have any questions, create an [issue](issue) (protip: do a quick search first to see if someone else didn't ask the same question before!) or send a quick questions to [Gitter](https://gitter.im/D3-Node-Editor/Lobby).
You can also reach us at hello@d3-node-editor.opencollective.com.
If you have any questions, create an [issue](issue) (protip: do a quick search first to see if someone else didn't ask the same question before!) or send a quick questions to [Gitter](https://gitter.im/retejs/Lobby).
You can also reach us at hello@rete.opencollective.com.

@@ -50,4 +50,4 @@ ## Credits

Thank you to all the people who have already contributed to d3-node-editor!
<a href="graphs/contributors"><img src="https://opencollective.com/d3-node-editor/contributors.svg?width=890" /></a>
Thank you to all the people who have already contributed to rete!
<a href="graphs/contributors"><img src="https://opencollective.com/rete/contributors.svg?width=890" /></a>

@@ -57,5 +57,5 @@

Thank you to all our backers! [[Become a backer](https://opencollective.com/d3-node-editor#backer)]
Thank you to all our backers! [[Become a backer](https://opencollective.com/rete#backer)]
<a href="https://opencollective.com/d3-node-editor#backers" target="_blank"><img src="https://opencollective.com/d3-node-editor/backers.svg?width=890"></a>
<a href="https://opencollective.com/rete#backers" target="_blank"><img src="https://opencollective.com/rete/backers.svg?width=890"></a>

@@ -65,15 +65,15 @@

Thank you to all our sponsors! (please ask your company to also support this open source project by [becoming a sponsor](https://opencollective.com/d3-node-editor#sponsor))
Thank you to all our sponsors! (please ask your company to also support this open source project by [becoming a sponsor](https://opencollective.com/rete#sponsor))
<a href="https://opencollective.com/d3-node-editor/sponsor/0/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/1/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/2/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/3/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/4/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/5/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/6/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/7/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/8/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/d3-node-editor/sponsor/9/website" target="_blank"><img src="https://opencollective.com/d3-node-editor/sponsor/9/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/0/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/1/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/2/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/3/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/4/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/5/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/6/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/7/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/8/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/rete/sponsor/9/website" target="_blank"><img src="https://opencollective.com/rete/sponsor/9/avatar.svg"></a>
<!-- This `CONTRIBUTING.md` is based on @nayafia's template https://github.com/nayafia/contributing-template -->
{
"name": "rete",
"version": "1.0.0-alpha.1",
"version": "1.0.0-alpha.2",
"description": "JavaScript framework",

@@ -30,4 +30,4 @@ "main": "build/rete.js",

"devDependencies": {
"babel-core": "^6.26.0",
"babel-eslint": "^8.2.1",
"babel-core": "^6.26.3",
"babel-eslint": "^8.2.3",
"babel-plugin-syntax-flow": "^6.18.0",

@@ -41,8 +41,8 @@ "babel-plugin-transform-flow-strip-types": "^6.22.0",

"babel-register": "^6.26.0",
"eslint": "^4.18.1",
"jsdom": "^11.5.1",
"mocha": "^5.0.1",
"rollup": "^0.56.3",
"eslint": "^4.19.1",
"jsdom": "^11.11.0",
"mocha": "^5.2.0",
"rollup": "^0.56.5",
"rollup-copy-plugin": "0.0.1",
"rollup-plugin-babel": "^3.0.3",
"rollup-plugin-babel": "^3.0.4",
"rollup-plugin-minify": "^1.0.3",

@@ -49,0 +49,0 @@ "rollup-plugin-multi-entry": "^2.0.2",

@@ -16,6 +16,6 @@ import babel from 'rollup-plugin-babel';

output: {
file: 'build/d3-node-editor.js',
file: 'build/rete.js',
sourcemap: true,
format: 'umd',
name: 'D3NE',
name: 'Rete',
banner

@@ -28,3 +28,3 @@ },

umd: {
dest: 'build/d3-node-editor.min.js',
dest: 'build/rete.min.js',
ie8: true,

@@ -42,5 +42,5 @@ output: {

output: {
file: 'build/d3-node-editor.engine.js',
file: 'build/rete.engine.js',
format: 'cjs',
name: 'D3NE',
name: 'Rete',
banner

@@ -52,3 +52,3 @@ },

copy({
'src/engine/engine.d.ts': 'build/d3-node-editor.engine.d.ts'
'src/engine/engine.d.ts': 'build/rete.engine.d.ts'
})

@@ -55,0 +55,0 @@ ]

@@ -14,3 +14,3 @@ import { Component as ComponentWorker } from './engine/component';

builder() { }
async builder() { }

@@ -22,3 +22,2 @@ created() { }

async build(node: Node) {
//await this.editor.trigger('componentbuild', { component: this, node });
await this.builder(node);

@@ -25,0 +24,0 @@

@@ -53,8 +53,12 @@ import { Component } from './component';

const connection = output.connectTo(input);
try {
const connection = output.connectTo(input);
connection.data = data;
this.view.addConnection(connection);
connection.data = data;
this.view.addConnection(connection);
this.trigger('connectioncreated', connection);
this.trigger('connectioncreated', connection);
} catch (e) {
this.trigger('warn', e)
}
}

@@ -98,3 +102,3 @@

clear() {
this.nodes.map(node => this.removeNode(node));
[...this.nodes].map(node => this.removeNode(node));
}

@@ -101,0 +105,0 @@

@@ -1,2 +0,1 @@

type ComponentWorkerFunc = (node : any, inputs : any[][], outputs : any[]) => any;
type EngineState = {

@@ -8,11 +7,24 @@ AVALIABLE: 0,

interface ComponentWorkerProps {
worker: ComponentWorkerFunc;
export class Emitter {
constructor();
on(names : string, handler : (param?: any) => any) : Emitter;
trigger(name : string, param?: any) : any;
}
export class ComponentWorker {
export class Events {
constructor(handlers : any);
}
export class Context extends Emitter {
constructor(id : string, events : Events);
use(plugin: any, options?: any);
}
export abstract class Component {
name : string;
worker : ComponentWorkerFunc;
constructor(name : string, props : ComponentWorkerProps);
constructor(name: string);
worker(node : any, inputs : any[][], outputs : any[]): Promise<any> | any;
}

@@ -22,3 +34,3 @@

readonly id : string;
components : ComponentWorker[]
components : Component[]
args : any[];

@@ -28,3 +40,5 @@ data : Object;

onAbort : () => {};
constructor(id : string, components : ComponentWorker[]);
constructor(id : string);
register(component: Component);

@@ -31,0 +45,0 @@ clone() : Engine;

@@ -1,8 +0,4 @@

import { Engine, ComponentWorkerProps, ComponentWorker } from './engine./engine.d';
import {Engine, Context, Events, Component as ComponentWorker, Emitter} from './engine/engine.d';
export {Engine, ComponentWorker};
export { Engine, ComponentWorkerProps, ComponentWorker };
type ComponentBuilder = (node: Node) => any;
type ComponentCreated = (node : any) => any;
type ComponentDestroyed = (node : any) => any;
type EngineState = {

@@ -14,211 +10,85 @@ AVALIABLE: 0,

interface ComponentProps extends ComponentWorkerProps {
template?: string;
builder: ComponentBuilder;
created?: ComponentCreated;
destroyed?: ComponentDestroyed;
}
declare class Module {
constructor(data : any, titlesInput : String[], titlesOutput : String[]);
static extractNodes(data : any, titles : String[]);
read(inputs : String[]);
write(outputs : String[]);
}
type ModuleWorker = (node : any, inputs : any[][], outputs : any[]) => any;
type ModuleWorkerIO = (node : any, inputs : any[][], outputs : any[], module : Module) => any;
type ControlHandler = (element : HTMLElement, control : Control) => any;
type DiffOutput = {
node: Number,
input: Number
}
type DiffConnect = {
output: Number,
node: Number,
removed: DiffOutput[],
added: DiffOutput[]
};
type DiffResult = {
removed: Number[],
added: Number[],
moved: Number[],
datachanged: Number[],
connects: DiffConnect[]
}
type TaskAction = (inputs : any[][], data : any) => any[];
export class Socket {
constructor(id : string, name : string, hint : string);
constructor(name: string, data?: any);
combineWith(socket : Socket);
compatibleWith(socket : Socket);
combineWith(socket: Socket);
compatibleWith(socket: Socket);
}
export class Block {
readonly id : number;
position : number[];
width : number;
height : number;
style : any;
constructor(Class);
private static incrementId(Class)
}
export class Connection {
private input : Input;
private output : Output;
private input: Input;
private output: Output;
}
export class EventListener {
private events : Object;
persistent : boolean;
export class Area extends Emitter {
appendChild(el: HTMLElement);
removeChild(el: HTMLElement);
constructor();
on(names : string, handler : (param?: any, persistent?: boolean) => any) : EventListener;
trigger(name : string, param?: any) : any;
translate(x: number, y: number);
zoom(zoom: number, ox?: number, oy?: number);
}
export type PathInfo = {
connection: Connection,
input: Input,
output: Output
}
type ConnectionProducerRet = {
points: number[][],
curve: string
};
type ConnectionProducer = (x1 : number, y1 : number, x2 : number, y2 : number, pathInfo: PathInfo) => ConnectionProducerRet;
export class EditorView {
editor : NodeEditor;
pickedOutput?: Output;
mouse : number[];
transform : Object;
contextMenu : ContextMenu;
emitter: Emitter;
components: any;
container : Object
nodes: Map<Node, any>;
connections: Map<Node, any>;
private view : Object;
private zoom : Object;
area: Area;
constructor(editor : NodeEditor, container : HTMLElement, menu : ContextMenu);
private view: Object;
private zoom: Object;
private getTemplate(node);
addNode(node: Node);
removeNode(node: Node);
addConnection(connection: Connection);
removeConnection(connection: Connection);
updateConnections(args: any);
resize();
connectionProducer : ConnectionProducer;
click(e: MouseEvent);
}
updateConnections();
update();
export class NodeEditor extends Context {
private assignContextMenuHandler();
private areaClick();
components: Map<string, Component>;
selected: Selected;
view: EditorView;
nodes: Node[];
constructor(id: string, container: HTMLElement);
zoomAt(nodes : Node[]);
translate(x : number, y : number);
scale(scale : number);
setScaleExtent(scaleMin : number, scaleMax : number);
setTranslateExtent(left : number, top : number, right : number, bottom : number);
}
addNode(node: Node, mousePlaced?: boolean)
removeNode(node: Node);
connect(output: Output, input: Input, data?: any);
removeConnection(connection: Connection);
selectNode(node: Node, accumulate?: boolean);
export class NodeEditor {
getComponent(name: string);
register(component: Component);
readonly id : string;
readonly _id : number;
components : Component[];
view : EditorView;
eventListener : EventListener;
private selected : Selected;
private history : History;
nodes : Node[];
groups : Group[];
readOnly : boolean;
constructor(id : string, container : HTMLElement, components : Component[], menu : ContextMenu);
addNode(node : Node, mousePlaced?: boolean)
addGroup(group : Group);
removeNode(node : Node);
removeGroup(group : Group);
connect(output : Output | Connection, input?: Input);
removeConnection(connection : Connection);
selectNode(node : Node, accumulate?: boolean);
selectGroup(group : Group, accumulate?: boolean);
keyDown();
clear();
toJSON();
fromJSON(json : any);
fromJSON(json: any);
}
export class History {
export class Node {
readonly id: number;
name: string;
position: number[];
constructor(editor : NodeEditor);
add(exec, undo, args);
undo();
redo();
}
inputs: Input[];
outputs: Output[];
controls: Control[];
data: any;
meta: any;
export class ContextMenu {
visible : number;
x : number;
y : number;
constructor(name: string);
constructor(items : any, searchBar?: boolean)
private static incrementId(Class)
private bindTemplate(t);
private searchItems(filter?: string);
haveSubitems(item);
isVisible();
show(x : number, y : number, items?: any, searchBar?: boolean, onClick?: () => {});
hide();
}
export class Group extends Block {
title : string;
nodes : Node[];
constructor(title : string, params : any);
setMinSizes(width : number, height : number);
setWidth(w : number);
setHeight(h : number);
isCoverNode(node : Node);
coverNodes(nodes : Node[]);
containNode(node : Node);
addNode(node : Node);
removeNode(node : Node);
remove();
toJSON();
static fromJSON(json : any);
}
export class Node extends Block {
el: HTMLElement;
group : Group;
inputs : Input[];
outputs : Output[];
controls : Control[];
data : any;
title : string;
readOnly : boolean;
constructor(title : string);
addControl(control : Control, index?: number);
addInput(input : Input, index?: number);
addOutput(output : Output, index?: number);
addControl(control: Control, index?: number);
addInput(input: Input, index?: number);
addOutput(output: Output, index?: number);
getConnections(type);

@@ -228,5 +98,6 @@

private static incrementId();
toJSON();
static fromJSON(component : Component, json : any)
static fromJSON(component: Component, json: any)
}

@@ -238,33 +109,30 @@

add(item : Node | Group, accumulate?: boolean)
add(item: Node, accumulate?: boolean)
clear();
remove(item : () => {});
contains(item : () => {});
each(callback : () => {});
eachNode(callback : () => {});
eachGroup(callback : () => {});
getNodes() : Node[];
getGroups() : Group[];
remove(item: () => {});
contains(item: () => {});
each(callback: () => {});
eachNode(callback: () => {});
getNodes(): Node[];
}
export class IO {
el: HTMLElement;
node : Node;
multipleConnections : boolean;
connections : Connection[];
node: Node;
multipleConnections: boolean;
connections: Connection[];
title : string;
socket : Socket;
title: string;
socket: Socket;
constructor(title, socket, multiConns);
removeConnection(connection : Connection);
removeConnection(connection: Connection);
}
export class Input extends IO {
control : Control;
control: Control;
constructor(title : string, socket : Socket, multiConns?: boolean);
constructor(title: string, socket: Socket, multiConns?: boolean);
hasConnection();
addConnection(connection : Connection);
addControl(control : Control);
addConnection(connection: Connection);
addControl(control: Control);
showControl();

@@ -276,54 +144,32 @@ toJSON();

constructor(title : string, socket : Socket, multiConns?: boolean)
constructor(title: string, socket: Socket, multiConns?: boolean)
hasConnection();
connectTo(input : Input);
connectedTo(input : Input);
connectTo(input: Input);
connectedTo(input: Input);
toJSON();
}
export class Control {
export abstract class Control {
constructor(html : string, handler?: ControlHandler);
parent: Input | Node;
constructor();
getNode();
getData(key : string);
getData(key: string);
putData(key : string, data : any);
putData(key: string, data: any);
}
export class Component extends ComponentWorker {
template : string;
builder: ComponentBuilder;
constructor(name : string, props : ComponentProps);
export abstract class Component extends ComponentWorker {
newNode() : Node;
}
editor: NodeEditor;
engine: Engine;
export class Diff {
constructor(data1 : any, data2 : any);
public compare() : DiffResult;
}
constructor(name: string);
export class ModuleManager {
constructor(titlesInput : String[], titlesOutput : String[]);
getInputs(data : any);
getOutputs(data : any);
workerModule : ModuleWorker;
workerInputs : ModuleWorkerIO;
workerOutputs : ModuleWorkerIO;
setEngine(engine : Engine);
}
export class Task {
constructor(inputs : any[][], action : TaskAction);
private getOptions();
private getOutputs();
reset();
run(data : any);
option(index : Number);
output(index : Number);
}
builder(node: Node): Promise<any> | any;
created(node: Node);
destroyed(node: Node);
createNode(data?: any): Promise<Node>;
}

@@ -11,3 +11,3 @@ import { Component } from './component';

export {
export default {
Component,

@@ -14,0 +14,0 @@ Control,

@@ -16,2 +16,4 @@ import { Area } from './area';

this.container.style.overflow = 'hidden';
this.nodes = new Map();

@@ -18,0 +20,0 @@ this.connections = new Map();

@@ -24,3 +24,3 @@ export default {

],
'title': 'name'
'name': 'name'
},

@@ -47,3 +47,3 @@ '2': {

],
'title': 'name'
'name': 'name'
},

@@ -84,3 +84,3 @@ '3': {

],
'title': 'Add'
'name': 'Add'
},

@@ -121,3 +121,3 @@ '4': {

],
'title': 'Add'
'name': 'Add'
}

@@ -124,0 +124,0 @@ },

@@ -9,2 +9,2 @@ import {JSDOM} from 'jsdom';

global.D3NE = require('../../build/d3-node-editor');
global.D3NE = require('../../build/rete');
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc