{"_id":"elkjs","_rev":"4128839","name":"elkjs","description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","dist-tags":{"latest":"0.11.0","next":"0.11.0"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"time":{"modified":"2026-03-01T18:28:46.000Z","created":"2017-07-18T08:27:43.143Z","0.11.0":"2025-09-15T08:10:37.947Z","0.10.2":"2025-07-22T08:57:16.238Z","0.10.1":"2025-06-25T14:32:26.635Z","0.10.0":"2025-03-13T14:05:03.012Z","0.9.3":"2024-04-16T08:28:21.682Z","0.9.2":"2024-02-23T12:12:13.779Z","0.9.1":"2024-01-08T08:16:38.763Z","0.9.0":"2023-12-22T08:38:51.966Z","0.8.2":"2022-08-29T10:20:39.829Z","0.8.1":"2022-05-02T16:49:49.554Z","0.7.3-dev":"2021-07-15T19:32:02.392Z","0.7.2-dev":"2021-07-15T18:59:05.345Z","0.7.1":"2020-12-20T15:51:13.377Z","0.7.0":"2020-07-31T09:22:38.035Z","0.6.2":"2020-03-07T19:47:16.171Z","0.6.1":"2020-01-17T11:02:21.879Z","0.6.0-dev-20191012":"2019-10-12T19:54:48.099Z","0.5.1":"2019-09-27T18:59:52.961Z","0.5.0":"2019-09-27T18:37:06.446Z","0.4.1":"2018-08-11T16:35:51.969Z","0.3.0":"2017-10-11T19:16:33.843Z","0.0.2":"2017-08-14T16:28:47.288Z","0.0.1":"2017-07-18T08:27:43.143Z"},"users":{},"author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"versions":{"0.11.0":{"name":"elkjs","version":"0.11.0","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"@babel/core":"^7.26.4","@babel/cli":"^7.26.4","@babel/preset-env":"^7.26.4","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.3.0","web-worker":"1.4.1","cipher-base":"^1.0.6","sha.js":"^2.4.12"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"37e798513db6e88b2e205b8239ed4e387d5f24d0","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.11.0","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"shasum":"ca57b209ff66531c0f77ff32b9667aaeaad45d1b","size":1705987,"noattachment":false,"key":"/elkjs/-/elkjs-0.11.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.11.0.tgz"},"_npmUser":{"name":"sdo-inf","email":"sdo@informatik.uni-kiel.de"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elkjs_0.11.0_1757923837707_0.32892055046695257"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-09-15T08:10:37.947Z","publish_time":1757923837947,"_source_registry_name":"default","_cnpm_publish_time":1757923837947},"0.10.2":{"name":"elkjs","version":"0.10.2","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"@babel/core":"^7.26.4","@babel/cli":"^7.26.4","@babel/preset-env":"^7.26.4","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.3.0","web-worker":"1.4.1"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"f64a4813dcab63c30fe67a32470cd1c05f4f7031","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.10.2","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"shasum":"7b95dbe5d41a5971b2eb13e54201855799389a43","size":1666685,"noattachment":false,"key":"/elkjs/-/elkjs-0.10.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.10.2.tgz"},"_npmUser":{"name":"sdo-inf","email":"sdo@informatik.uni-kiel.de"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elkjs_0.10.2_1753174636011_0.534270894954491"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-22T08:57:16.238Z","publish_time":1753174636238,"_source_registry_name":"default","_cnpm_publish_time":1753174636238},"0.10.1":{"name":"elkjs","version":"0.10.1","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"@babel/core":"^7.26.4","@babel/cli":"^7.26.4","@babel/preset-env":"^7.26.4","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.3.0","web-worker":"1.4.1"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"57659bbe7724e3918c4cebeddf6440d18d1ab2ba","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.10.1","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"shasum":"37d52f9320c22e9f3ed6cadbb5b9f648c539d256","size":1663318,"noattachment":false,"key":"/elkjs/-/elkjs-0.10.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.10.1.tgz"},"_npmUser":{"name":"sdo-inf","email":"sdo@informatik.uni-kiel.de","actor":{"name":"sdo-inf","email":"sdo@informatik.uni-kiel.de","type":"user"}},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elkjs_0.10.1_1750861946426_0.3814140169093334"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-25T14:32:26.635Z","publish_time":1750861946635,"_source_registry_name":"default","_cnpm_publish_time":1750861946635},"0.10.0":{"name":"elkjs","version":"0.10.0","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"@babel/core":"^7.26.4","@babel/cli":"^7.26.4","@babel/preset-env":"^7.26.4","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.3.0","web-worker":"1.4.1"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"8a4fc2e11c1a184daa156cf563961bd860980c5f","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.10.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"shasum":"abe2aa6cb25e7439b708fab873b2448d26ed33a1","size":1652540,"noattachment":false,"key":"/elkjs/-/elkjs-0.10.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.10.0.tgz"},"_npmUser":{"name":"eddykasp","email":"maxkasperowski@outlook.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elkjs_0.10.0_1741874702668_0.007598485227736429"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-13T14:05:03.012Z","publish_time":1741874703012,"_source_registry_name":"default","_cnpm_publish_time":1741874703012},"0.9.3":{"name":"elkjs","version":"0.9.3","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.3.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"a8304cf79fde75bc2ab1a89d28320f53f8637436","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.9.3","_nodeVersion":"14.21.3","_npmVersion":"6.14.18","dist":{"shasum":"16711f8ceb09f1b12b99e971b138a8384a529161","size":1690280,"noattachment":false,"key":"/elkjs/-/elkjs-0.9.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.9.3.tgz"},"_npmUser":{"name":"eddykasp","email":"maxkasperowski@outlook.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.9.3_1713256101469_0.34831466541444844"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-04-16T08:28:21.682Z","publish_time":1713256101682,"_source_registry_name":"default","_cnpm_publish_time":1713256101682},"0.9.2":{"name":"elkjs","version":"0.9.2","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.0.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"72b471e65f5c5d7b0e94450b14c14bdf12384f82","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.9.2","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"shasum":"3d4ef6f17fde06a5d7eaa3063bb875e25e59e972","size":1690027,"noattachment":false,"key":"/elkjs/-/elkjs-0.9.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.9.2.tgz"},"_npmUser":{"name":"eddykasp","email":"maxkasperowski@outlook.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.9.2_1708690333506_0.70305165364477"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-02-23T12:12:13.779Z","publish_time":1708690333779,"_source_registry_name":"default","_cnpm_publish_time":1708690333779},"0.9.1":{"name":"elkjs","version":"0.9.1","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.0.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"9384be8c75692d7a321bd37321d6b97774ee62fc","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.9.1","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"shasum":"fd1524b3f0bed72dc65ba107ae91bcf04b5582bd","size":1689584,"noattachment":false,"key":"/elkjs/-/elkjs-0.9.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.9.1.tgz"},"_npmUser":{"name":"eddykasp","email":"maxkasperowski@outlook.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.9.1_1704701798580_0.13214668233429872"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-01-08T08:16:38.763Z","publish_time":1704701798763,"_source_registry_name":"default","_cnpm_publish_time":1704701798763},"0.9.0":{"name":"elkjs","version":"0.9.0","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.0.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"3ac8b39fd3dbdea1356bab8e89e700d956d7698c","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.9.0","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"shasum":"739139dfda438c57c92a7616bcbbda1e8508a2e6","size":1689584,"noattachment":false,"key":"/elkjs/-/elkjs-0.9.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.9.0.tgz"},"_npmUser":{"name":"eddykasp","email":"maxkasperowski@outlook.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.9.0_1703234331730_0.9536934585729351"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-12-22T08:38:51.966Z","publish_time":1703234331966,"_source_registry_name":"default","_cnpm_publish_time":1703234331966},"0.8.2":{"name":"elkjs","version":"0.8.2","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.0.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"cd0dc6b4e4bf1f221db04147f88b4d7c7041b834","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.8.2","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"shasum":"c37763c5a3e24e042e318455e0147c912a7c248e","size":1607013,"noattachment":false,"key":"/elkjs/-/elkjs-0.8.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.8.2.tgz"},"_npmUser":{"name":"sdo-inf","email":"sdo@informatik.uni-kiel.de"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.8.2_1661768439570_0.6919468862540115"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-08-29T10:44:11.980Z","publish_time":1661768439829,"_cnpm_publish_time":1661768439829},"0.8.1":{"name":"elkjs","version":"0.8.1","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-2.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^10.0.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"97c7b72adbeb23dc9f90b8eb3dc5bf45d9607055","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.8.1","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"shasum":"e418c70f0162bf80c044ffd009ddd4fa7738a7d9","size":1605919,"noattachment":false,"key":"/elkjs/-/elkjs-0.8.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.8.1.tgz"},"_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.8.1_1651510189364_0.006016101763467452"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-05-02T16:49:55.369Z","publish_time":1651510189554,"_cnpm_publish_time":1651510189554},"0.7.3-dev":{"name":"elkjs","version":"0.7.3-dev","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"b342176639e532a5bc93e11f1a37ade50d8a7958","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.7.3-dev","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"shasum":"baaf9ff607576e1ee043a23ac4b4a3b09a21c3e2","size":1576900,"noattachment":false,"key":"/elkjs/-/elkjs-0.7.3-dev.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.7.3-dev.tgz"},"_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.7.3-dev_1626377522228_0.42111385253481726"},"_hasShrinkwrap":false,"publish_time":1626377522392,"_cnpm_publish_time":1626377522392,"_cnpmcore_publish_time":"2021-12-15T02:25:54.605Z"},"0.7.2-dev":{"name":"elkjs","version":"0.7.2-dev","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"1b188ef6f4b720da55077a68977124d72a640f9a","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.7.2-dev","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"shasum":"20bbbc3e43c266c2d351ae2a51c736f4d70d20ef","size":1576704,"noattachment":false,"key":"/elkjs/-/elkjs-0.7.2-dev.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.7.2-dev.tgz"},"_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.7.2-dev_1626375545018_0.20534377533687986"},"_hasShrinkwrap":false,"publish_time":1626375545345,"_cnpm_publish_time":1626375545345,"_cnpmcore_publish_time":"2021-12-15T02:25:55.430Z"},"0.7.1":{"name":"elkjs","version":"0.7.1","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"5e7fc67fcdd26872cbda346d43ce0be6107c384d","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.7.1","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"shasum":"4751c5e918a4988139baf7f214e010aea22de969","size":1570010,"noattachment":false,"key":"/elkjs/-/elkjs-0.7.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.7.1.tgz"},"_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"directories":{},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.7.1_1608479473202_0.08579927527256159"},"_hasShrinkwrap":false,"publish_time":1608479473377,"_cnpm_publish_time":1608479473377,"_cnpmcore_publish_time":"2021-12-15T02:25:56.109Z"},"0.7.0":{"name":"elkjs","version":"0.7.0","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/kieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","web-worker":"^1.0.0"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"7a02c33441a97e10146c2ab00c37f9068bbce282","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"homepage":"https://github.com/kieler/elkjs#readme","_id":"elkjs@0.7.0","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"shasum":"c9341af221456979a74c5806ecbddaeaaea305b5","size":1565951,"noattachment":false,"key":"/elkjs/-/elkjs-0.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.7.0.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.7.0_1596187357842_0.38416691368628997"},"_hasShrinkwrap":false,"publish_time":1596187358035,"_cnpm_publish_time":1596187358035,"_cnpmcore_publish_time":"2021-12-15T02:25:56.705Z"},"0.6.2":{"name":"elkjs","version":"0.6.2","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","webworker-threads":"^0.7.12"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"b8f89c87e98fc39073e7b10c64262602ffb3a7bd","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.6.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"dist":{"shasum":"b33ea52cd2e049abf921598e5106995865245bda","size":1538133,"noattachment":false,"key":"/elkjs/-/elkjs-0.6.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.6.2.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.6.2_1583610436003_0.5480686146980174"},"_hasShrinkwrap":false,"publish_time":1583610436171,"_cnpm_publish_time":1583610436171,"_cnpmcore_publish_time":"2021-12-15T02:25:57.381Z"},"0.6.1":{"name":"elkjs","version":"0.6.1","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib","setDevVersion":"npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\""},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","webworker-threads":"^0.7.12"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"81b20dcbc19c94542e59efe70bc729249ef1a5ba","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.6.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"dist":{"shasum":"25e8c6211bc1279a6a1e7192c8de7c981376e89a","size":1515068,"noattachment":false,"key":"/elkjs/-/elkjs-0.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.6.1.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.6.1_1579258941685_0.055180950944085705"},"_hasShrinkwrap":false,"publish_time":1579258941879,"_cnpm_publish_time":1579258941879,"_cnpmcore_publish_time":"2021-12-15T02:25:57.894Z"},"0.6.0-dev-20191012":{"name":"elkjs","version":"0.6.0-dev-20191012","author":{"name":"Ulf Rüegg","email":"uruurumail@gmail.com"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/main.d.ts lib/main.d.ts","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"./gradlew clean && rm -r lib"},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","webworker-threads":"^0.7.12"},"publishConfig":{"access":"public","tag":"next"},"readmeFilename":"README.md","gitHead":"2324aad3d4163ae44e913e4af14a999cd9464a04","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.6.0-dev-20191012","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"dist":{"shasum":"ea0012217fbd9bcc506dd5018e654b000c2ffea8","size":1519237,"noattachment":false,"key":"/elkjs/-/elkjs-0.6.0-dev-20191012.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.6.0-dev-20191012.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.6.0-dev-20191012_1570910087907_0.9033912567208375"},"_hasShrinkwrap":false,"publish_time":1570910088099,"_cnpm_publish_time":1570910088099,"_cnpmcore_publish_time":"2021-12-15T02:25:58.437Z"},"0.5.1":{"name":"elkjs","version":"0.5.1","author":{"name":"Ulf Rüegg","email":"uru@informatik.uni-kiel.de"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main","types":"lib/main","repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/main.d.ts lib/main.d.ts","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"rm -r lib"},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","webworker-threads":"^0.7.12"},"gitHead":"5a1f565bd3ba55ec2428f31b059b0d960a734cd9","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.5.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"dist":{"shasum":"906e7fddfd3b57872500c144a50042ffbc3a8f0b","size":1513761,"noattachment":false,"key":"/elkjs/-/elkjs-0.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.5.1.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.5.1_1569610792739_0.8168329557685197"},"_hasShrinkwrap":false,"publish_time":1569610792961,"_cnpm_publish_time":1569610792961,"_cnpmcore_publish_time":"2021-12-15T02:25:58.946Z"},"0.5.0":{"name":"elkjs","version":"0.5.0","author":{"name":"Ulf Rüegg","email":"uru@informatik.uni-kiel.de"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main.js","repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"rm -r lib"},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^6.2.0","webworker-threads":"^0.7.12"},"gitHead":"be46b3109649a268cc638890668329e2f7db0faf","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.5.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"uruuru","email":"uruurumail@gmail.com"},"dist":{"shasum":"7022b4fb694949f34df49943a29dfc22c3fc57ac","size":1513156,"noattachment":false,"key":"/elkjs/-/elkjs-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.5.0.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.5.0_1569609426244_0.6711984473067425"},"_hasShrinkwrap":false,"publish_time":1569609426446,"_cnpm_publish_time":1569609426446,"_cnpmcore_publish_time":"2021-12-15T02:25:59.474Z"},"0.4.1":{"name":"elkjs","version":"0.4.1","author":{"name":"Ulf Rüegg","email":"uru@informatik.uni-kiel.de"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main.js","files":["lib"],"repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"rm -r lib"},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^3.2.0","webworker-threads":"^0.7.12"},"gitHead":"561db93282f6845ede55fb1867bcc4bde713b2e1","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.4.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"uruuru","email":"uru@informatik.uni-kiel.de"},"dist":{"shasum":"6b42de8572fa49642e2f0c31d5e584608e47196d","size":1458715,"noattachment":false,"key":"/elkjs/-/elkjs-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.4.1.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs_0.4.1_1534005351801_0.8962652289541557"},"_hasShrinkwrap":false,"publish_time":1534005351969,"_cnpm_publish_time":1534005351969,"_cnpmcore_publish_time":"2021-12-15T02:26:00.062Z"},"0.3.0":{"name":"elkjs","version":"0.3.0","author":{"name":"Ulf Rüegg","email":"uru@informatik.uni-kiel.de"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main.js","files":["lib"],"repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"mkdirp lib && npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js","clean":"rm -r lib"},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mkdirp":"^0.5.0","mocha":"^3.2.0","webworker-threads":"^0.7.12"},"gitHead":"a52b7ae8c8bdff7f24c6253799eb97021c3a9100","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.3.0","_shasum":"b58d8c9ba0939b51b4c29bd93b576395ab02ebeb","_from":".","_npmVersion":"4.6.1","_nodeVersion":"6.11.0","_npmUser":{"name":"uruuru","email":"uru@informatik.uni-kiel.de"},"dist":{"shasum":"b58d8c9ba0939b51b4c29bd93b576395ab02ebeb","size":1407447,"noattachment":false,"key":"/elkjs/-/elkjs-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.3.0.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs-0.3.0.tgz_1507749391892_0.3696472099982202"},"directories":{},"publish_time":1507749393843,"_hasShrinkwrap":false,"_cnpm_publish_time":1507749393843,"_cnpmcore_publish_time":"2021-12-15T02:26:00.600Z"},"0.0.2":{"name":"elkjs","version":"0.0.2","author":{"name":"Ulf Rüegg","email":"uru@informatik.uni-kiel.de"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main.js","files":["lib"],"repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha test/mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker.*.js lib/ && cp build/js/main-node.js lib/main.js","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js"},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mocha":"^3.2.0","webworker-threads":"^0.7.12"},"gitHead":"68260f68fe8482d8f180fcad862d6648da84472f","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.0.2","_shasum":"6f2776526134ac5fcf4281616620e3bc3cd325e0","_from":".","_npmVersion":"4.6.1","_nodeVersion":"6.11.0","_npmUser":{"name":"uruuru","email":"uru@informatik.uni-kiel.de"},"dist":{"shasum":"6f2776526134ac5fcf4281616620e3bc3cd325e0","size":1346777,"noattachment":false,"key":"/elkjs/-/elkjs-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.0.2.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs-0.0.2.tgz_1502728125584_0.08905507810413837"},"directories":{},"publish_time":1502728127288,"_hasShrinkwrap":false,"_cnpm_publish_time":1502728127288,"_cnpmcore_publish_time":"2021-12-15T02:26:01.066Z"},"0.0.1":{"name":"elkjs","version":"0.0.1","author":{"name":"Ulf Rüegg","email":"uru@informatik.uni-kiel.de"},"description":"Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.","main":"lib/main.js","files":["lib"],"repository":{"type":"git","url":"git+https://github.com/OpenKieler/elkjs.git"},"keywords":["graph","layout","layered","ports","dataflow"],"license":"EPL-1.0","scripts":{"test":"mocha","gradle":"./gradlew lib","babel":"babel src/js/ -d build/js/","browserifyApi":"browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js","browserifyBundle":"browserify build/js/main-node.js -s ELK -i 'webworker-threads' --outfile lib/elk.bundled.js","browserify":"npm run browserifyApi && npm run browserifyBundle","cp":"cp build/js/elk-worker.*.js lib/ && cp build/js/main-node.js lib/main.js","js":"npm run babel && npm run browserify && npm run cp","build":"npm run gradle && npm run js"},"devDependencies":{"babel-cli":"^6.24.1","babel-preset-env":"^1.6.0","browserify":"^14.4.0","chai":"^4.0.2","chai-as-promised":"^7.1.1","mocha":"^3.2.0","webworker-threads":"^0.7.12"},"gitHead":"110b81450b6a6b56211b74c98daec62e6a17a729","bugs":{"url":"https://github.com/OpenKieler/elkjs/issues"},"homepage":"https://github.com/OpenKieler/elkjs#readme","_id":"elkjs@0.0.1","_shasum":"af0218b026eaa7e44c06399913b41f1452b5a619","_from":".","_npmVersion":"4.6.1","_nodeVersion":"6.11.0","_npmUser":{"name":"uruuru","email":"uru@informatik.uni-kiel.de"},"dist":{"shasum":"af0218b026eaa7e44c06399913b41f1452b5a619","size":1336193,"noattachment":false,"key":"/elkjs/-/elkjs-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/elkjs/download/elkjs-0.0.1.tgz"},"maintainers":[{"name":"eddykasp","email":""},{"name":"rt-kieler","email":""},{"name":"sdo-inf","email":""},{"name":"spoenemann","email":""},{"name":"uruuru","email":"uru@informatik.uni-kiel.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elkjs-0.0.1.tgz_1500366461301_0.20079831802286208"},"directories":{},"publish_time":1500366463143,"_hasShrinkwrap":false,"_cnpm_publish_time":1500366463143,"_cnpmcore_publish_time":"2021-12-15T02:26:01.561Z"}},"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/kieler/elkjs/master/doc/elk_logo_with_text.svg\" height=\"100\"> \n</p>\n\n[![npm version](https://badge.fury.io/js/elkjs.svg)](https://badge.fury.io/js/elkjs)\n\nThe [Eclipse Layout Kernel (ELK)](https://www.eclipse.org/elk/) implements an infrastructure to connect diagram editors or viewers to automatic layout algorithms. This library takes the layout-relevant part of ELK and makes it available to the JavaScript world.\nELK's flagship is a layer-based layout algorithm that is particularly suited for node-link diagrams with an inherent direction and ports (explicit attachment points on a node's border). It is based on the ideas originally introduced by Sugiyama et al. An example can be seen in the screenshot below.\n\nNote that elkjs is not a diagramming framework itself - it computes positions for the elements of a diagram. \n\nelkjs is the successor of [klayjs](https://github.com/kieler/klayjs).\n\n#### Demonstrator\nYou can see elkjs [live in action](https://rtsys.informatik.uni-kiel.de/elklive/) in conjunction with TypeFox's [sprotty](https://github.com/eclipse/sprotty) diagramming framework. In case elklive happens to be down you can use the published [docker container](https://github.com/kieler/elk-live/pkgs/container/elk-live) to run and host it yourself.\n\n![](https://raw.githubusercontent.com/kieler/elkjs/master/doc/example_complexRouter.svg)\n\n\n# FAQs and Recurring Issues\nThe following list includes some recurring topics that may have been addressed in issues already: \n\n* [#100][ejs100], [elk#355][e355], [elk#627][e627] - How to consider previous layout results, including\n  * dynamic layout, and\n  * incrementally adding nodes and edges to an existing layout.\n\n* [elk#315][e315]: Standalone edge routing. \n\n* [#85][ejs85] elkjs itself is a graph layout engine _only_. In other words, no rendering, styling, etc. is provided. \n\n* [#127][ejs127], [#141][ejs141], [#142][ejs142] - Issues due to the underlying code transpilation by GWT and/or due to the outdated usage of js modules:\n  *  `g is not defined`,\n  * `Can't resolve web-worker`, and\n  * general usage as part of react, webpack, etc.\n  * [#6][ejs6] Poor modularization\n  * Contributions here are welcome!\n\n[ejs6]: https://github.com/kieler/elkjs/issues/6\n[ejs85]: https://github.com/kieler/elkjs/issues/85\n[ejs100]: https://github.com/kieler/elkjs/issues/100\n[ejs127]: https://github.com/kieler/elkjs/issues/127\n[ejs141]: https://github.com/kieler/elkjs/issues/141\n[ejs142]: https://github.com/kieler/elkjs/issues/142\n[e315]: https://github.com/eclipse/elk/issues/315\n[e355]: https://github.com/eclipse/elk/issues/355\n[e627]: https://github.com/eclipse/elk/issues/627\n\n# Installation\nThe latest released version:\n```bash\nnpm install elkjs\n```\nDevelopment version based on ELK's `master` branch.\n```bash\nnpm install elkjs@next\n```\n\n# Releases and Versioning\n\nReleases are partly synchronized with ELK's versions: the minor version number is always the same but the revision number may diverge. For instance, elkjs 0.3.0 equals the functionality of ELK 0.3.0 but elkjs 0.3.2 may be different from ELK 0.3.2. This is necessary as there may be fixes that solely concern elkjs and should be released independently of ELK.\n\n#  Files\nThe library consists of two main files:\n* `elk-api.js`: Provides the API and only the API.\n* `elk-worker.js`: Provides the code that actually knows how to lay out a graph. This is the file that is generated from ELK's Java code base using GWT.\n\nTwo further files are provided:\n* `elk.bundled.js`: A bundled version of the two previous files, ready to be dropped into a browser's `<script>` tag. The file is processed by [browserify](http://browserify.org/) and the `ELK` is exposed as a global variable (if run in a browser).\n* `main.js`: Main file of the node.js module. Allows to conveniently write `require('elkjs')` instead of composing the files from above.\n\n# Example\nA small example using node.js,\nfor further use cases see the next section.\n```js\nconst ELK = require('elkjs')\nconst elk = new ELK()\n\nconst graph = {\n  id: \"root\",\n  layoutOptions: { 'elk.algorithm': 'layered' },\n  children: [\n    { id: \"n1\", width: 30, height: 30 },\n    { id: \"n2\", width: 30, height: 30 },\n    { id: \"n3\", width: 30, height: 30 }\n  ],\n  edges: [\n    { id: \"e1\", sources: [ \"n1\" ], targets: [ \"n2\" ] },\n    { id: \"e2\", sources: [ \"n1\" ], targets: [ \"n3\" ] }\n  ]\n}\n\nelk.layout(graph)\n   .then(console.log)\n   .catch(console.error)\n```\nNote that in case you get errors, you may want to switch to the non-minified version \nto get a proper stack trace.\n\n## Layout Options\n\nYou can use _layout options_ to configure the layout algorithm.\nFor that you attach a `layoutOptions` object\nto the graph element that holds key/value pairs\nrepresenting the desired layout options.\nSee, for instance, `root` in the example above.\nIt is possible to only use the suffix of a layout option:\n`algorithm` instead of `org.eclipse.elk.layered`.\nHowever, if the suffix is not unique the layout option\nmay be ignored. To be safe, you should always start the\nlayout options with the `elk.` part.\nA list of all options and further details of their exact effects\nis available in [ELK's documentation](http://www.eclipse.org/elk/reference.html).\n\nIt is possible to pass global layout options\nas part of the `layout` method's second argument.\nThe options are then applied to every graph element\nunless the element specifies the option itself:\n```js\nelk.layout(graph, {\n  layoutOptions: { ... }\n})\n```\n\nAdditionally, `ELK`'s constructor accepts an object\nwith layout options that is used with every\n`layout` call that does not specify layout options:\n```js\nconst elk = new ELK({\n  defaultLayoutOptions: { ... }\n})\n```\n\n# Usage\n\nSince laying out diagrams can be a time-consuming job\n(even for the computer),\nand since we don't want to freeze your UI,\nWeb Workers are supported out of the box.\nThe following examples illustrate how the library can be used either\nwith and without a Web Worker.\n\n## node.js\n\n```js\nconst ELK = require('elkjs')\n// without web worker\nconst elk = new ELK()\n\nelk.layout(graph)\n   .then(console.log)\n```\n\n```js\nconst ELK = require('elkjs')\n// with web worker\nconst elk = new ELK({\n  workerUrl: './node_modules/elkjs/lib/elk-worker.min.js'\n})\n\nelk.layout(graph)\n   .then(console.log)\n```\n\nSince version 10.x, node.js comes with a worker threads implementation that is similar to,\nbut not equal to, a browser's `Worker` class.\nTo ease implementation on our side, we use a library, `web-worker`, \nthat provides a wrapper around node's `worker_threads`, which is API-compatible to a browser's `Worker.\nAny other library that provides the standard Web Worker methods should be fine though.\nThe package is not installed automatically to avoid\nthe unnecessary dependency for everyone who is not\ninterested in using a web worker.\nA warning is raised if one requests a web worker\nwithout having installed the package.\nelkjs falls back to the non-Web Worker version in that case.\n\n## Browser\n\n```html\n<html>\n  <script src=\"./elk.bundled.js\"></script>\n  <script type=\"text/javascript\">\n    const elk = new ELK()\n\n    elk.layout(graph)\n       .then(function(g) {\n         document.body.innerHTML = \"<pre>\" + JSON.stringify(g, null, \" \") + \"</pre>\"\n       })\n  </script>\n</html>\n```\n\n```html\n<html>\n  <script src=\"./elk-api.js\"></script> <!-- use elk-api.js here! -->\n  <script type=\"text/javascript\">\n    const elk = new ELK({\n      workerUrl: './elk-worker.js'\n    })\n\n    elk.layout(graph)\n       .then(function(g) {\n         document.body.innerHTML = \"<pre>\" + JSON.stringify(g, null, \" \") + \"</pre>\"\n       })\n  </script>\n</html>\n```\n\n## Typescript\n```ts\nimport ELK from 'elkjs/lib/elk.bundled.js'\nconst elk = new ELK()\n\n\nimport ELK from 'elkjs/lib/elk-api'\nconst elk = new ELK({\n  workerUrl: './elk-worker.min.js'\n})\n```\n\n## Debugging\nFor debugging purposes you may want to use the non-minified versions that are available as well.\nIn this case the non-minified webworker version can be configured like so:\n```js\nconst ELK = require('elkjs/lib/elk-api.js')\nconst elk = new ELK({\n    workerFactory: function(url) { // the value of 'url' is irrelevant here\n        const { Worker } = require('elkjs/lib/elk-worker.js') // non-minified\n        return new Worker(url)\n    }\n})\n```\n\n# API\n\nThe elkjs library provides a single object: the `ELK`. The `ELK` has a constructor that can be used\nto construct it:\n* `new ELK(options)` - the `ELK` can be fed with options, all of which are optional:\n  * `defaultLayoutOptions` - an object with default layout options specified as key/value pairs\n        that are used if no further layout options are passed to the `layout(graph, options)` method (see below). Default: `{}`.\n  * `algorithms` - an array of algorithm ids (only the suffix). Default: `[ 'layered', 'stress', 'mrtree', 'radial', 'force', 'disco' ]`. Note that the `box`, `fixed`, and `random` layouters are always included.\n  * `workerUrl` - a path to the  `elk-worker.js` script. As a consequence the `ELK` will use a Web Worker to execute the layout. Default: `undefined`.\n\nApart from that the `ELK` offers the following methods:\n* `layout(graph, options)`\n  * `graph` - the graph to be laid out in [ELK JSON](http://www.eclipse.org/elk/documentation/tooldevelopers/graphdatastructure/jsonformat.html). Mandatory!\n  * `options` - a configuration object. Optional.\n    * `layoutOptions`: its most important purpose is to pass _global_ layout options.\n      That is, layout options that are applied to every graph element unless the element specifies the option itself.\n    * `logging`: boolean (_since 0.6.0_). Whether logging information shall be passed back as part of the laid out graph. `false` by default.\n    * `measureExecutionTime`: boolean (_since 0.6.0_). Whether execution time (in seconds) information shall be passed back as part of the laid out graph. `false` by default.\n  * returns a `Promise`, which passes either the laid out graph on success or a (hopefully helpful) error on failure.\n* `knownLayoutOptions()`\n  * returns an array of of known layout options. For each option additional information\n    such as its `id` and `group` is given.\n* `knownLayoutAlgorithms()`\n  * returns an array of registered layout algorithms (see above)\n    alongside further information about each algorithm.\n* `knownLayoutCategories()`\n  * returns an array of registered layout categories.\n* `terminateWorker()` - in case a Web Worker is used, the worker's `terminate()` method is called.\n\nThe three methods starting with `known` basically return information\nthat, in the Java world, would be retrieved from the [`LayoutMetaDataService`](http://www.eclipse.org/elk/documentation/algorithmdevelopers/metadatalanguage.html).\n\n\n# Logging and Execution Times\n(_Since 0.6.0_)\n\nELK provides some means to log debug information during layout algorithm execution.\nThe details can be found in the [_Algorithm Debugging_](https://www.eclipse.org/elk/documentation/algorithmdevelopers/algorithmdebugging.html) section of ELK's documentation.\nNot all of it is available in elkjs though, for instance, it is not possible to save intermediate results of the laid out graphs.\nFurthermore, while internally execution time is measured in _nanoseconds_ on the Java side,\nin elkjs we have to resort to _milliseconds_.\nNote that the returned execution times are in seconds.\nFor small graphs this may often result in execution times being reported as `0`.\n\nSee below an example call and the example output.\n```js\nelk.layout(simpleGraph, {\n    layoutOptions: {\n        'algorithm': 'layered'\n    },\n    logging: true,\n    measureExecutionTime: true\n})\n```\n```js\n{\n  \"id\": \"root\",\n  \"children\": [ ... ],\n  \"edges\": [ ... ],\n  \"logging\": {\n    \"name\": \"Recursive Graph Layout\",\n    \"executionTime\": 0.000096,\n    \"children\": [ {\n      \"name\": \"Layered layout\",\n      \"logs\": [\n        \"ELK Layered uses the following 17 modules:\",\n        \"   Slot 01: org.eclipse.elk.alg.layered.p1cycles.GreedyCycleBreaker\",\n            [ ... ]\n        \"   Slot 16: org.eclipse.elk.alg.layered.intermediate.ReversedEdgeRestorer\"\n      ],\n      \"executionTime\": 0.000072,\n      \"children\": [ { \"name\": \"Greedy cycle removal\", \"executionTime\": 0.000002 },\n                      [ ... ]\n                    { \"name\": \"Restoring reversed edges\", \"executionTime\": 0 } ]\n    } ]\n  }\n}\n```\n\n# Building\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kieler/elkjs)\n\nFor building, a checkout of the [ELK](https://github.com/eclipse/elk) repository is required\nand should be located in the same directory as the checkout of this repository. Like so:\n\n```\nsome_dir/\n ├── elkjs\n └── elk\n```\n\n```bash\nnpm install\nnpm run build\n```\n\nFor a new release, the following version numbers have to be changed:\n* `version` in `package.json`,\n* `melk` in `build.gradle`, and\n* don't forget to checkout the correct release tag of ELK's repository.\n\nAfterwards you can find the created files in the `lib` folder.\n\nCurrent procedure\n```bash\ngit checkout -b releases/0.x.x\n# Check that the version numbers are correct, if necessary update versions and commit the changes\nnpm install\nnpm run build\nnpm run test\n# Add ./lib/ directory and commit\ngit tag 0.x.x\n# Push release branch and tags to remote\ngit push --tags --set-upstream origin releases/0.x.x\n# Create a new release on Github for the new tag and afterwards publish to npm \nnpm publish --tag=latest\n```\nAfterwards the following version numbers have to be changed to the next release number:\n* `version` in `package.json`,\n* `melk` in `build.gradle`.\n\n## Incorrect npm tags\nIncorrectly tagged versions on npm can be updated with\n`npm dist-tag add elkjs@<version> <latest/next>`.\n\n# Links\nIn the following a list of asorted links to other projects and sites that may prove helpful:\n* [Execution time comparison to Java ELK](https://github.com/kieler/elk-speed) \n* How to specify [node label placement](http://kieler.github.io/klayjs-d3/examples/node_labels/)\n* How to enforce certain [node positioning](http://kieler.github.io/klayjs-d3/examples/interactive/) (topological)\n\n# Example Users of elkjs\n\n- Schematics\n  - [netlistsvg](https://github.com/nturley/netlistsvg) - electronic and gate level schematics as SVG\n  - [d3-hwschematic](https://github.com/Nic30/d3-hwschematic) - interactive digital circuit analysis and documentation, particularly for FPGA-based designs\n- Cytoscape [adapter](https://github.com/cytoscape/cytoscape.js-elk)\n- [reaflow](https://reaflow.dev) - Node-based editor built on elkjs in React\n- [reactflow](https://reactflow.dev) - React component for building node-based editors and interactive diagrams\n- Wrapping elkjs into a [docker-based microservice](https://github.com/elbosso/elkjsmicroservice)\n- [sprotty](https://github.com/eclipse/sprotty) - A diagramming framework\n- [Eclipse 4diac](https://www.fordiac.org)\n- [capellambse-context-diagrams](https://github.com/DSD-DBS/capellambse-context-diagrams) - Generating systems engineering context diagrams for [Capella](https://www.eclipse.org/capella/) in Python\n- Used to layout the [dataflow viewer](https://github.com/vega/editor/pull/1023) in the [Vega Editor](https://vega.github.io/editor/#/)\n\nNote: We are happy to extend this list further, so please contact us if you have a project to add\n\n# Thanks\n\n* [@automata](https://github.com/automata) for the very first `klayjs` version\n* [@aranega](https://github.com/aranega) for making emfgwt work for us\n* [@EyMaddis](https://github.com/EyMaddis) for valuable API discussions\n* The team working on the layout algorithms\n  * [@spoenemann](https://github.com/spoenemann)\n  * [@le-cds](https://github.com/le-cds)\n  * [@uruuru](https://github.com/uruuru)\n  * [@eNBeWe](https://github.com/eNBeWe)\n  * the vast number of students that contributed to ELK\n","_attachments":{},"readmeFilename":"README.md","homepage":"https://github.com/kieler/elkjs#readme","bugs":{"url":"https://github.com/kieler/elkjs/issues"},"license":"EPL-2.0"}