{"_id":"@bptlab/openbpt-modeler-state-transition-system","_rev":"4-9cd27100ab80aff9dd2e930271c0c16f","name":"@bptlab/openbpt-modeler-state-transition-system","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@bptlab/openbpt-modeler-state-transition-system","version":"1.0.0","keywords":["modeler","modeling","diagram-js","state transition system"],"author":{"name":"Maximilian König"},"license":"MIT","_id":"@bptlab/openbpt-modeler-state-transition-system@1.0.0","maintainers":[{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},{"name":"bpt-lab","email":"bptlab@hpi.de"},{"name":"t-lichtenstein","email":"lichtenstein-t@web.de"}],"homepage":"https://github.com/bptlab/openbpt-modeler-state-transition-system#readme","bugs":{"url":"https://github.com/bptlab/openbpt-modeler-state-transition-system/issues"},"dist":{"shasum":"307ddbf20d6444677c3b50ed54fafb46a9a75f2f","tarball":"https://registry.npmjs.org/@bptlab/openbpt-modeler-state-transition-system/-/openbpt-modeler-state-transition-system-1.0.0.tgz","fileCount":66,"integrity":"sha512-M9R8gWq942IVfnYczKjIKJ4mQVuXDnCmzI06dPMNIlP+LFIKyX2C7UBdJ1AU/MUhlXXiVqrwbmz6ByshJnrPDQ==","signatures":[{"sig":"MEUCIQDJTOcWeQ4CRIGcmg7D65O9tFC+7vJIFOPdRYAFlTT/WQIgGKsAYmKCSdAqxCbWdUR2fm92Wsd71qpqoOnB4KAlW9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165482},"main":"index.js","gitHead":"9cf99a248f6d3dc6bcbb2d9e0676c108d7ee4838","scripts":{"lint":"eslint . --ext .js","format":"prettier --write .","lint:fix":"eslint . --ext .js --fix","build:icons":"node scripts/build-icons.js"},"_npmUser":{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},"repository":{"url":"git+https://github.com/bptlab/openbpt-modeler-state-transition-system.git","type":"git"},"_npmVersion":"11.4.2","description":"State Transition System modeler based on diagram-js used in the OpenBPT platform.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ids":"^1.0.5","jquery":"^3.7.1","moddle":"^6.2.3","min-dom":"^5.0.0","inherits":"^2.0.4","min-dash":"^4.2.1","tiny-svg":"^4.0.0","bpmn-font":"^0.12.1","diagram-js":"^15.2.4","moddle-xml":"^10.1.0","object-refs":"^0.4.0","diagram-js-direct-editing":"^2.1.2"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^13.0.6","svgo":"^4.0.0","eslint":"^10.0.0","fs-extra":"^11.3.3","prettier":"^3.6.2","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^2.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openbpt-modeler-state-transition-system_1.0.0_1772030933004_0.06985830605661958","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bptlab/openbpt-modeler-state-transition-system","version":"1.0.1","keywords":["modeler","modeling","diagram-js","state transition system"],"author":{"name":"Maximilian König"},"license":"MIT","_id":"@bptlab/openbpt-modeler-state-transition-system@1.0.1","maintainers":[{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},{"name":"bpt-lab","email":"bptlab@hpi.de"},{"name":"t-lichtenstein","email":"lichtenstein-t@web.de"}],"homepage":"https://github.com/bptlab/openbpt-modeler-state-transition-system#readme","bugs":{"url":"https://github.com/bptlab/openbpt-modeler-state-transition-system/issues"},"dist":{"shasum":"8d28139536008972cb4a194b1cd45a0da5ba72d5","tarball":"https://registry.npmjs.org/@bptlab/openbpt-modeler-state-transition-system/-/openbpt-modeler-state-transition-system-1.0.1.tgz","fileCount":66,"integrity":"sha512-zzUiRvjlKJRz47xmutMrwspt22ff6+1AXv/bku7E37WKWBbLgjZZ3jW8gtP9wrjJR25TBjuL6Il+o7BMbTUIHg==","signatures":[{"sig":"MEYCIQCh7qT78GdofFnQaIkIXq3PnnKej5RgxrfPkjYgv0RlsQIhAMDfUcd2RjH3GQD+DLIIsFs5N0kwX3zaU/bbIIgD8sgc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165576},"main":"index.js","gitHead":"669ce89827decee0c126a07a0e1c5f4a2381a3cb","scripts":{"lint":"eslint . --ext .js","format":"prettier --write .","lint:fix":"eslint . --ext .js --fix","build:icons":"node scripts/build-icons.js"},"_npmUser":{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},"repository":{"url":"git+https://github.com/bptlab/openbpt-modeler-state-transition-system.git","type":"git"},"_npmVersion":"11.4.2","description":"State Transition System modeler based on diagram-js used in the OpenBPT platform.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ids":"^1.0.5","jquery":"^3.7.1","moddle":"^6.2.3","min-dom":"^5.0.0","inherits":"^2.0.4","min-dash":"^4.2.1","tiny-svg":"^4.0.0","bpmn-font":"^0.12.1","diagram-js":"^15.2.4","moddle-xml":"^10.1.0","object-refs":"^0.4.0","diagram-js-direct-editing":"^2.1.2"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^13.0.6","svgo":"^4.0.0","eslint":"^10.0.0","fs-extra":"^11.3.3","prettier":"^3.6.2","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^2.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openbpt-modeler-state-transition-system_1.0.1_1772035218115_0.6336727169352778","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bptlab/openbpt-modeler-state-transition-system","version":"1.0.2","keywords":["modeler","modeling","diagram-js","state transition system"],"author":{"name":"Maximilian König"},"license":"MIT","_id":"@bptlab/openbpt-modeler-state-transition-system@1.0.2","maintainers":[{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},{"name":"bpt-lab","email":"bptlab@hpi.de"},{"name":"t-lichtenstein","email":"lichtenstein-t@web.de"}],"homepage":"https://github.com/bptlab/openbpt-modeler-state-transition-system#readme","bugs":{"url":"https://github.com/bptlab/openbpt-modeler-state-transition-system/issues"},"dist":{"shasum":"707372eeb47c3d4725bdd02539a059f897bbf65f","tarball":"https://registry.npmjs.org/@bptlab/openbpt-modeler-state-transition-system/-/openbpt-modeler-state-transition-system-1.0.2.tgz","fileCount":67,"integrity":"sha512-BH00Zia5ZtN/0YrPY4AZ69/8kLZuzM+ZM7sqiJhPe2+19PTF/XZO6jjBab1LTaxd1CAn/1CHHOFasOiaOaYvew==","signatures":[{"sig":"MEQCICnQzGz5hxlXVYhyGQDHvzuKfwWEOYaBqtO9y3TAOK6gAiAzmBPJ4ExzG53u00IVx2U4fMI+5oUtUJ3xLtu3+wXISQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166448},"main":"index.js","gitHead":"acd9a82dc83ed38f9a65bc05ad4262afc2954d51","scripts":{"lint":"eslint . --ext .js","format":"prettier --write .","lint:fix":"eslint . --ext .js --fix","build:icons":"node scripts/build-icons.js"},"_npmUser":{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},"repository":{"url":"git+https://github.com/bptlab/openbpt-modeler-state-transition-system.git","type":"git"},"_npmVersion":"11.4.2","description":"State Transition System modeler based on diagram-js used in the OpenBPT platform.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ids":"^1.0.5","jquery":"^3.7.1","moddle":"^6.2.3","min-dom":"^5.0.0","inherits":"^2.0.4","min-dash":"^4.2.1","tiny-svg":"^4.0.0","bpmn-font":"^0.12.1","diagram-js":"^15.2.4","moddle-xml":"^10.1.0","object-refs":"^0.4.0","diagram-js-direct-editing":"^2.1.2"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^13.0.6","svgo":"^4.0.0","eslint":"^10.0.0","fs-extra":"^11.3.3","prettier":"^3.6.2","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^2.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openbpt-modeler-state-transition-system_1.0.2_1772538349377_0.9861338252789089","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bptlab/openbpt-modeler-state-transition-system","version":"1.1.0","description":"State Transition System modeler based on diagram-js used in the OpenBPT platform.","repository":{"type":"git","url":"git+https://github.com/bptlab/openbpt-modeler-state-transition-system.git"},"author":{"name":"Maximilian König"},"license":"MIT","keywords":["modeler","modeling","diagram-js","state transition system"],"main":"index.js","scripts":{"lint":"eslint . --ext .js","lint:fix":"eslint . --ext .js --fix","format":"prettier --write .","build:icons":"node scripts/build-icons.js"},"dependencies":{"bpmn-font":"^0.12.1","diagram-js":"^15.2.4","diagram-js-direct-editing":"^2.1.2","ids":"^1.0.5","inherits":"^2.0.4","jquery":"^3.7.1","min-dash":"^4.2.1","min-dom":"^5.0.0","moddle":"^6.2.3","moddle-xml":"^10.1.0","object-refs":"^0.4.0","tiny-svg":"^4.0.0"},"devDependencies":{"eslint":"^10.0.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^2.7.0","fs-extra":"^11.3.3","glob":"^13.0.6","prettier":"^3.6.2","svgo":"^4.0.0"},"_id":"@bptlab/openbpt-modeler-state-transition-system@1.1.0","gitHead":"c5a5eb054c5879366727f3aeba6bbbdfe30e1740","bugs":{"url":"https://github.com/bptlab/openbpt-modeler-state-transition-system/issues"},"homepage":"https://github.com/bptlab/openbpt-modeler-state-transition-system#readme","_nodeVersion":"22.15.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-AYV3IQvpmmLXzE90aMEImODn1ze6YivlpJGmIKP1KtK5G2y44RDw0waMljHKGQ3Y4+kUQhhxgFvUY588SBVT0Q==","shasum":"4d2ac68cbfdbdfcb594793a5721d214195d375d0","tarball":"https://registry.npmjs.org/@bptlab/openbpt-modeler-state-transition-system/-/openbpt-modeler-state-transition-system-1.1.0.tgz","fileCount":69,"unpackedSize":171612,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAONuOBes+DLmRLI3hhNFDquXORROsNXCXul1G/n7XEPAiBcqSkHsdJSdGNCJ88S16+JVz7uksnkdR32/nsiNRpUIg=="}]},"_npmUser":{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},"directories":{},"maintainers":[{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},{"name":"bpt-lab","email":"bptlab@hpi.de"},{"name":"t-lichtenstein","email":"lichtenstein-t@web.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openbpt-modeler-state-transition-system_1.1.0_1777035699790_0.5325251759789078"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-25T14:48:52.900Z","modified":"2026-04-24T13:01:40.112Z","1.0.0":"2026-02-25T14:48:53.172Z","1.0.1":"2026-02-25T16:00:18.262Z","1.0.2":"2026-03-03T11:45:49.541Z","1.1.0":"2026-04-24T13:01:39.955Z"},"bugs":{"url":"https://github.com/bptlab/openbpt-modeler-state-transition-system/issues"},"author":{"name":"Maximilian König"},"license":"MIT","homepage":"https://github.com/bptlab/openbpt-modeler-state-transition-system#readme","keywords":["modeler","modeling","diagram-js","state transition system"],"repository":{"type":"git","url":"git+https://github.com/bptlab/openbpt-modeler-state-transition-system.git"},"description":"State Transition System modeler based on diagram-js used in the OpenBPT platform.","maintainers":[{"name":"maximiliankoenig","email":"maximilian.koenig@hpi.de"},{"name":"bpt-lab","email":"bptlab@hpi.de"},{"name":"t-lichtenstein","email":"lichtenstein-t@web.de"}],"readme":"# openbpt-modeler-template\n\nTemplate repository for the creation of modelers used in the OpenBPT project.\nThe template is a generalization of the [ptn-js](https://github.com/MaximilianKoenig/ptn-js) modeler. It is based on [diagram-js](https://github.com/bpmn-io/diagram-js) and took inspiration from [bpmn-js](https://github.com/bpmn-io/bpmn-js), [object-diagram-js](https://github.com/timKraeuter/object-diagram-js) and [fcm-js](https://github.com/bptlab/fCM-design-support).\n\nThe template showcases a working version of a basic Petri net modeler whose elements should be replaced with the elements of the new modeling language. For that purpose, fork the repository and follow the steps outlined below.\n**If you create a new modeler and implement additional features that could be generalized to fit any modeler, please feel free to create a pull request so that others may profit from your extension as well!**\n\n## Development Setup\n\n1. Clone this repository\n2. Navigate into the created directory\n3. Run ``npm install``\n4. Run ``npm link``\n5. Clone the [development repository](https://github.com/bptlab/openbpt-modeler-dev)\n6. Navigate into the created directory\n7. Follow the setup instructions of the development repository\n8. Run ``npm install``\n9. Run ``npm link <your_package_name>``\n\nTo start the modeler, run ``npm run dev`` in the development repo's directory.\n\n## Implementing a New Modeler\n\nImplementing a new modeler requires the definition of the metamodel of the modeling language, a custom renderer, a set of icons, and a few adaptations in the modeler itself. In general, the keyword **CustomModelerTodo** marks places in the code that require adaptation.\n\n### Defining the Metamodel\n\nTo define the model structure, we build on [moddle](https://github.com/bpmn-io/moddle), which uses a schema defined as a JSON file to create a meta model that can be used to instantiate model elements while knowing their attributes and relations and provides a structure for importing and exporting XML files.\nThe followning class diagram shows the currently implemented metamodel used in the modeler. It can be generally divided into two sides:\n\n- The *semantic* elements are the classes on the left, everything inheriting from `Schema`. They define the different model elements and their attributes/relations.\n- The *syntactic* elements are the classes on the right, everything inheriting from `DiagramElement` as well as `Diagram` and `Plane`. These elements are visual representatoions of the model elements, including positional information and associated labels.\n\n![Moddle_Class_Diagram](https://github.com/user-attachments/assets/465970e3-e9ab-4c4b-b243-0a61c9277a8a)\n\nIn most cases, it should not be necessary to modify the metamodel of the *syntactic* elements. For the *semantic* elements, the classes inheriting from `Node` and `BinaryConnection` (marked in red) must be defined for the respective modeling language in [modelSchema.js](https://github.com/bptlab/openbpt-modeler-template/blob/main/lib/moddle/resources/modelSchema.js). A documentation can be found [here](https://github.com/bpmn-io/moddle/blob/main/docs/descriptor.md). Setting `isAttr` for a property will include it as an attribute in the XML, otherwise it is a separate child-tag.\n\n### Creating a Custom Renderer\n\n### Adding Icons\n\nTo include your own icons in the palette and context pads, create plain SVG files and place them in the `assets/icons` folder. Make sure to use descriptive names, as file names will be used as icon identifiers. Afterwards, execute `npm run build:icons` to generate the image URLs that will be used by diagram.js to render the icons.\n\n### Adapting the Modeler\n","readmeFilename":"README.md"}